--- a/khronosfws/openmax_al/src/adptcommon/xaframeworkmgr.c Fri Jul 23 17:29:03 2010 -0500
+++ b/khronosfws/openmax_al/src/adptcommon/xaframeworkmgr.c Fri Aug 06 16:55:00 2010 -0500
@@ -62,9 +62,6 @@
static FWMgrBool tokenizeTag(FWMgrTagType tagType, const char* buffer,
FrameworkMap **node);
-/* Crates a default rules config file */
-static int createDefaultRules(const char * filename);
-
/* Global functions from header file */
/* FrameworkMap* XAFrameworkMgr_CreateFrameworkMap
--- a/khronosfws/openmax_al/src/mmf_adaptation/cmmfradiobackendengine.cpp Fri Jul 23 17:29:03 2010 -0500
+++ b/khronosfws/openmax_al/src/mmf_adaptation/cmmfradiobackendengine.cpp Fri Aug 06 16:55:00 2010 -0500
@@ -86,7 +86,7 @@
iRadioPlayerUtility = &iRadioUtility->RadioPlayerUtilityL( *this );
}
-// SetForceMonoFlag();
+ SetForceMonoFlag();
iDefaultFrequency = RADIO_DEFAULT_FREQ;
iDefaultFreqRange = (TFmRadioFrequencyRange)RADIO_DEFAULT_FREQ_RANGE;
iDefaultMinFreq = RADIO_DEFAULT_MIN_FREQ;
@@ -104,6 +104,7 @@
void CMMFRadioBackendEngine::SetFrequency(TInt aFreq)
{
DEBUG_API_A1("CMMFRadioBackendEngine::SetFrequency: %d", aFreq);
+
if (iFmTunerUtility)
{
iFmTunerUtility->SetFrequency(aFreq);
@@ -167,17 +168,17 @@
TInt CMMFRadioBackendEngine::GetFreqRange(TFmRadioFrequencyRange& aRange)
{
TInt ret = KErrNotFound;
- TInt minFreq = 0;
- TInt maxFreq = 0;
+ TInt minFreq;
+ TInt maxFreq;
if (iFmTunerUtility)
{
ret = iFmTunerUtility->GetFrequencyRange((TFmRadioFrequencyRange&)aRange, (TInt&)minFreq, (TInt&)maxFreq);
if (ret != KErrNone)
{
- aRange = iDefaultFreqRange;
minFreq = iDefaultMinFreq;
maxFreq = iDefaultMaxFreq;
+ aRange = iDefaultFreqRange;
ret = KErrNone;
}
}
@@ -259,7 +260,7 @@
ret = iFmTunerUtility->GetForcedMonoReception(forceMono);
if (ret == KErrNotReady)
{
- aForcedMono = XA_STEREOMODE_STEREO; // Radio Utility Default value
+ aForcedMono = XA_STEREOMODE_AUTO; // Radio Utility Default value
return KErrNone;
}
}
@@ -298,9 +299,9 @@
TInt CMMFRadioBackendEngine::ForceMonoReception(XAuint32 aForcedMono)
{
TInt ret = KErrNotFound;
- TBool currentMode;
+ XAuint32 currentMode;
- ret = GetForcedMonoReception((XAuint32&)currentMode);
+ ret = GetForcedMonoReception(currentMode);
if (ret != XA_RESULT_SUCCESS)
return ret;
@@ -706,9 +707,9 @@
return ((CMMFRadioBackendEngine*)(context))->GetFreqRange((TFmRadioFrequencyRange&)*range);
}
- XAresult get_freq_range_properties(void* context, XAuint8 range, XAuint32* aMinFreq, XAuint32* aMaxFreq)
+ XAresult get_freq_range_properties(void* context, XAuint8 aRange, XAuint32* aMinFreq, XAuint32* aMaxFreq)
{
- return ((CMMFRadioBackendEngine*)(context))->GetFreqRangeProperties((TFmRadioFrequencyRange&)range, (TInt&) *aMinFreq, (TInt&) *aMaxFreq);
+ return ((CMMFRadioBackendEngine*)(context))->GetFreqRangeProperties((TFmRadioFrequencyRange&) aRange, (TInt&) *aMinFreq, (TInt&) *aMaxFreq);
}
XAresult get_max_volume(void* context, XAmillibel* maxVol)
--- a/khronosfws/openmax_al/src/mmf_adaptation/xaradioitfadaptation.c Fri Jul 23 17:29:03 2010 -0500
+++ b/khronosfws/openmax_al/src/mmf_adaptation/xaradioitfadaptation.c Fri Aug 06 16:55:00 2010 -0500
@@ -70,7 +70,7 @@
/*
* XAresult XARadioItfAdapt_GetFreqRangeProperties(XAAdaptationMMFCtx *bCtx,
- * XAuint8 * pRange,
+ * XAuint8 range,
* XAuint32 * pMinFreq,
* XAuint32 * pMaxFreq)
*/
--- a/khronosfws/openmax_al/src/radio/xaradioitf.c Fri Jul 23 17:29:03 2010 -0500
+++ b/khronosfws/openmax_al/src/radio/xaradioitf.c Fri Aug 06 16:55:00 2010 -0500
@@ -95,7 +95,6 @@
XAresult ret = XA_RESULT_SUCCESS;
XARadioItfImpl* impl = GetImpl(self);
DEBUG_API("->XARadioItfImpl_GetFreqRange");
- XA_IMPL_THREAD_SAFETY_ENTRY(XATSRadio);
if(!impl || !pRange)
{
@@ -108,7 +107,6 @@
ret = XARadioItfAdapt_GetFreqRange(pRange);
- XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
DEBUG_API("<-XARadioItfImpl_GetFreqRange");
return ret;
}
@@ -147,7 +145,7 @@
/**
* XAresult XARadioItfImpl_GetFreqRangeProperties(XARadioItf self,
- * XAuint8 range,
+ * XAuint8 range,
* XAuint32 * pMinFreq,
* XAuint32 * pMaxFreq,
* XAuint32 * pFreqInterval)
@@ -155,7 +153,7 @@
* modulation of the given frequency range.
**/
XAresult XARadioItfImpl_GetFreqRangeProperties(XARadioItf self,
- XAuint8 range,
+ XAuint8 range,
XAuint32 * pMinFreq,
XAuint32 * pMaxFreq,
XAuint32 * pFreqInterval)
@@ -167,21 +165,9 @@
*pFreqInterval = FREQINTERVAL;
DEBUG_API("->XARadioItfImpl_GetFreqRangeProperties");
- XA_IMPL_THREAD_SAFETY_ENTRY(XATSRadio);
if(!impl || !pMinFreq || !pMaxFreq || !pFreqInterval)
{
- XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
- /* invalid parameter */
- DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
- DEBUG_API("<-XARadioItfImpl_GetFreqRangeProperties");
- return XA_RESULT_PARAMETER_INVALID;
- }
- ret = XARadioItfAdapt_IsFreqRangeSupported( range, &isSupported );
-
- if (isSupported != XA_BOOLEAN_TRUE || ret != XA_RESULT_SUCCESS)
- {
- XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
/* invalid parameter */
DEBUG_ERR("XA_RESULT_PARAMETER_INVALID");
DEBUG_API("<-XARadioItfImpl_GetFreqRangeProperties");
@@ -191,7 +177,6 @@
ret = XARadioItfAdapt_GetFreqRangeProperties( (XAAdaptationMMFCtx*)impl->adapCtx,
range, pMinFreq, pMaxFreq );
- XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
DEBUG_API("<-XARadioItfImpl_GetFreqRangeProperties");
return ret;
}
@@ -207,6 +192,10 @@
XAresult XARadioItfImpl_SetFrequency(XARadioItf self, XAuint32 freq)
{
XAresult ret = XA_RESULT_SUCCESS;
+ XAuint8 range = 1; // Default to EuroAmerica
+ XAuint32 minFreq;
+ XAuint32 maxFreq;
+ XAuint32 freqInterval;
XARadioItfImpl* impl = GetImpl(self);
DEBUG_API("->XARadioItfImpl_SetFrequency");
@@ -220,9 +209,23 @@
return XA_RESULT_PARAMETER_INVALID;
}
-
-
- ret = XARadioItfAdapt_SetFrequency( (XAAdaptationMMFCtx*)impl->adapCtx, freq );
+ // Check for valid entries:
+ ret = XARadioItfImpl_GetFreqRangeProperties(self, range, &minFreq, &maxFreq, &freqInterval);
+ if (ret != XA_RESULT_SUCCESS)
+ {
+ XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
+ DEBUG_API("<-XARadioItfImpl_SetFrequency");
+ return ret;
+ }
+
+ if ( (freq < minFreq) || (freq > maxFreq) )
+ {
+ XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
+ DEBUG_API("<-XARadioItfImpl_SetFrequency");
+ return XA_RESULT_PARAMETER_INVALID;
+ }
+
+ ret = XARadioItfAdapt_SetFrequency( (XAAdaptationMMFCtx*)impl->adapCtx, freq );
XA_IMPL_THREAD_SAFETY_EXIT(XATSRadio);
DEBUG_API("<-XARadioItfImpl_SetFrequency");
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/rom/AudioControllerPluginsVariant.iby Fri Jul 23 17:29:03 2010 -0500
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/rom/AudioControllerPluginsVariant.iby Fri Aug 06 16:55:00 2010 -0500
@@ -35,6 +35,9 @@
file=ABI_DIR\BUILD_DIR\3GPAudioMetaDataComposer.dll SHARED_LIB_DIR\3GPAudioMetaDataComposer.dll
#endif
+//For Wav Controller
+ECOM_PLUGIN(mmfaudiocontroller.dll,101f55bf.rsc)
+
//For 3GP
ECOM_PLUGIN(3GPAudioPlayControllerPlugin.DLL,3GPAudioPlayControllerPlugin.rsc)
ECOM_PLUGIN(3GPAudioPlayControllerRecognizer.DLL,3GPAudioPlayControllerRecognizer.rsc)
--- a/mmfenh/profilesettingsmonitor/inc/ProfileSettingsMonitorServerImpl.h Fri Jul 23 17:29:03 2010 -0500
+++ b/mmfenh/profilesettingsmonitor/inc/ProfileSettingsMonitorServerImpl.h Fri Aug 06 16:55:00 2010 -0500
@@ -29,6 +29,7 @@
#include <MProEngActiveProfileObserver.h>
#include <MProEngProfileActivationObserver.h>
#include <MProEngNotifyHandler.h>
+#include <MProEngTones.h>
#include <MProEngToneSettings.h>
#include <e32property.h>
#include <GlobalAudioSettingsPSKeys.h>
@@ -36,6 +37,7 @@
#include <ProfileEngineDomainCRKeys.h>
#include <ProfilesVariant.hrh>
#include <e32capability.h>
+#include <GlobalAudioSettings.h>
class CProfileSettingsMonitorServerImpl :
public CBase,
public MProEngProfileActivationObserver,
@@ -62,6 +64,8 @@
// Initializes publish and subscribe keys used for
// audio clients list implementation
void InitializeAudioClientsListPSKeysL();
+ void CMapGASRingingType(TProfileRingingType aRingingType);
+ void CMapGASKeypadVolume(TProfileKeypadVolume aKeypadVolume);
private:
MProEngEngine* iEngine;
@@ -72,11 +76,27 @@
TBool iSilentProfile;
TBool iVibra;
TBool iPublicSilence;
+ HBufC* iMessageToneName;
+ HBufC* iEmailToneName;
+ HBufC* iVideoCallToneName;
+ HBufC* iRingingTone1Name;
+ HBufC* iRingingTone2Name;
+
+ CGlobalAudioSettings::TGASRingingType iGASRingingType;
+
+ CGlobalAudioSettings::TGASKeypadVolume iGASKeypadVolume;
RProperty iWarningTonesProperty;
RProperty iMessagingTonesProperty;
RProperty iSilentProfileProperty;
RProperty iVibraProperty;
RProperty iPublicSilenceProperty;
+ RProperty iMessageToneNameProperty;
+ RProperty iEmailToneNameProperty;
+ RProperty iRingingTypeProperty;
+ RProperty iVideoCallToneNameProperty;
+ RProperty iRingingTone1NameProperty;
+ RProperty iRingingTone2NameProperty;
+ RProperty iKeypadVolumeProperty;
};
#endif
--- a/mmfenh/profilesettingsmonitor/src/ProfileSettingsMonitorServerImpl.cpp Fri Jul 23 17:29:03 2010 -0500
+++ b/mmfenh/profilesettingsmonitor/src/ProfileSettingsMonitorServerImpl.cpp Fri Aug 06 16:55:00 2010 -0500
@@ -53,6 +53,52 @@
iVibraProperty.Close();
RProperty::Delete(KGASPSUidGlobalAudioSettings, KGASVibra);
+ iRingingTypeProperty.Close();
+ RProperty::Delete(KGASPSUidGlobalAudioSettings,KGASRingingType);
+
+ iMessageToneNameProperty.Close();
+ RProperty::Delete(KGASPSUidGlobalAudioSettings, KGASMessageToneName);
+
+ iEmailToneNameProperty.Close();
+ RProperty::Delete(KGASPSUidGlobalAudioSettings,KGASEmailToneName);
+
+ iVideoCallToneNameProperty.Close();
+ RProperty::Delete(KGASPSUidGlobalAudioSettings,KGASVideoCallToneName);
+
+ iRingingTone1NameProperty.Close();
+ RProperty::Delete(KGASPSUidGlobalAudioSettings,KGASRingingTone1Name);
+
+ iRingingTone2NameProperty.Close();
+ RProperty::Delete(KGASPSUidGlobalAudioSettings,KGASRingingTone2Name);
+
+ iKeypadVolumeProperty.Close();
+ RProperty::Delete(KGASPSUidGlobalAudioSettings,KGASKeypadToneVolume);
+
+ if(iMessageToneName)
+ {
+ delete iMessageToneName;
+ iMessageToneName=NULL;
+ }
+ if(iEmailToneName)
+ {
+ delete iEmailToneName;
+ iEmailToneName=NULL;
+ }
+ if(iVideoCallToneName)
+ {
+ delete iVideoCallToneName;
+ iVideoCallToneName=NULL;
+ }
+ if(iRingingTone1Name)
+ {
+ delete iRingingTone1Name;
+ iRingingTone1Name=NULL;
+ }
+ if(iRingingTone2Name)
+ {
+ delete iRingingTone2Name;
+ iRingingTone2Name=NULL;
+ }
// Release profile engine resources
if ( iEngine )
{
@@ -92,7 +138,25 @@
iWarningTones = settings.WarningAndGameTones();
iMessagingTones = !( currentProfile->IsSilent() );
iVibra = settings.VibratingAlert();
+
+ CMapGASRingingType( settings.RingingType());
+
//CleanupStack::PopAndDestroy(currentProfile);
+
+ MProEngTones& profileTones=currentProfile->ProfileTones();
+
+ iMessageToneName=profileTones.MessageAlertTone().AllocL();
+
+ iEmailToneName=profileTones.EmailAlertTone().AllocL();
+
+ iVideoCallToneName=profileTones.VideoCallRingingTone().AllocL();
+
+ iRingingTone1Name=profileTones.RingingTone1().AllocL();
+
+ iRingingTone2Name=profileTones.RingingTone2().AllocL();
+
+
+ CMapGASKeypadVolume(settings.KeypadVolume());
// Get PublicSilence from CenRep
TInt featureBitmask( 0 );
@@ -182,6 +246,103 @@
KGASPSUidGlobalAudioSettings,
KGASPublicSilence,
iPublicSilence));
+
+
+
+ User::LeaveIfError(RProperty::Define(
+ KGASPSUidGlobalAudioSettings,
+ KGASRingingType,
+ RProperty::EInt,
+ read,
+ write));
+ User::LeaveIfError(iRingingTypeProperty.Attach(
+ KGASPSUidGlobalAudioSettings,
+ KGASRingingType));
+ User::LeaveIfError(iRingingTypeProperty.Set(
+ KGASPSUidGlobalAudioSettings,
+ KGASRingingType,
+ iGASRingingType));
+ User::LeaveIfError(RProperty::Define(
+ KGASPSUidGlobalAudioSettings,
+ KGASMessageToneName,
+ RProperty::EText,
+ read,
+ write));
+ User::LeaveIfError(iMessageToneNameProperty.Attach(
+ KGASPSUidGlobalAudioSettings,
+ KGASMessageToneName));
+ User::LeaveIfError(iMessageToneNameProperty.Set(
+ KGASPSUidGlobalAudioSettings,
+ KGASMessageToneName,
+ *iMessageToneName));
+
+ User::LeaveIfError(RProperty::Define(
+ KGASPSUidGlobalAudioSettings,
+ KGASEmailToneName,
+ RProperty::EText,
+ read,
+ write));
+ User::LeaveIfError(iEmailToneNameProperty.Attach(
+ KGASPSUidGlobalAudioSettings,
+ KGASEmailToneName));
+ User::LeaveIfError(iEmailToneNameProperty.Set(
+ KGASPSUidGlobalAudioSettings,
+ KGASEmailToneName,
+ *iEmailToneName));
+ User::LeaveIfError(RProperty::Define(
+ KGASPSUidGlobalAudioSettings,
+ KGASVideoCallToneName,
+ RProperty::EText,
+ read,
+ write));
+ User::LeaveIfError(iVideoCallToneNameProperty.Attach(
+ KGASPSUidGlobalAudioSettings,
+ KGASVideoCallToneName));
+ User::LeaveIfError(iVideoCallToneNameProperty.Set(
+ KGASPSUidGlobalAudioSettings,
+ KGASVideoCallToneName,
+ *iVideoCallToneName));
+
+ User::LeaveIfError(RProperty::Define(
+ KGASPSUidGlobalAudioSettings,
+ KGASRingingTone1Name,
+ RProperty::EText,
+ read,
+ write));
+ User::LeaveIfError(iRingingTone1NameProperty.Attach(
+ KGASPSUidGlobalAudioSettings,
+ KGASRingingTone1Name));
+ User::LeaveIfError(iRingingTone1NameProperty.Set(
+ KGASPSUidGlobalAudioSettings,
+ KGASRingingTone1Name,
+ *iRingingTone1Name));
+ User::LeaveIfError(RProperty::Define(
+ KGASPSUidGlobalAudioSettings,
+ KGASRingingTone2Name,
+ RProperty::EText,
+ read,
+ write));
+ User::LeaveIfError(iRingingTone2NameProperty.Attach(
+ KGASPSUidGlobalAudioSettings,
+ KGASRingingTone2Name));
+ User::LeaveIfError(iRingingTone2NameProperty.Set(
+ KGASPSUidGlobalAudioSettings,
+ KGASRingingTone2Name,
+ *iRingingTone2Name));
+
+ User::LeaveIfError(RProperty::Define(
+ KGASPSUidGlobalAudioSettings,
+ KGASKeypadToneVolume,
+ RProperty::EInt,
+ read,
+ write));
+ User::LeaveIfError(iKeypadVolumeProperty.Attach(
+ KGASPSUidGlobalAudioSettings,
+ KGASKeypadToneVolume));
+ User::LeaveIfError(iKeypadVolumeProperty.Set(
+ KGASPSUidGlobalAudioSettings,
+ KGASKeypadToneVolume,
+ iGASKeypadVolume));
//Stream Gain Control
TInt status = RProperty::Define(
@@ -321,6 +482,74 @@
KGASVibra,
iVibra));
}
+ if(iGASRingingType != settings.RingingType())
+ {
+
+ CMapGASRingingType(settings.RingingType());
+
+ User::LeaveIfError(iRingingTypeProperty.Set(
+ KGASPSUidGlobalAudioSettings,
+ KGASRingingType,
+ iGASRingingType));
+
+ }
+ MProEngTones &profileTones=currentProfile->ProfileTones();
+ if(iMessageToneName->Compare(profileTones.MessageAlertTone())!= 0)
+ {
+ delete iMessageToneName;
+ iMessageToneName=NULL;
+ iMessageToneName=profileTones.MessageAlertTone().AllocL();
+ User::LeaveIfError(iMessageToneNameProperty.Set(KGASPSUidGlobalAudioSettings,
+ KGASMessageToneName,
+ *iMessageToneName));
+ }
+ if(iEmailToneName->Compare(profileTones.EmailAlertTone())!= 0)
+ {
+ delete iEmailToneName;
+ iEmailToneName=NULL;
+ iEmailToneName=profileTones.EmailAlertTone().AllocL();
+ User::LeaveIfError(iEmailToneNameProperty.Set(KGASPSUidGlobalAudioSettings,
+ KGASEmailToneName,
+ *iEmailToneName));
+ }
+ if(iVideoCallToneName->Compare(profileTones.VideoCallRingingTone())!=0)
+ {
+ delete iVideoCallToneName;
+ iVideoCallToneName=NULL;
+ iVideoCallToneName=profileTones.VideoCallRingingTone().AllocL();
+ User::LeaveIfError(iVideoCallToneNameProperty.Set(KGASPSUidGlobalAudioSettings,
+ KGASVideoCallToneName,
+ *iVideoCallToneName));
+
+ }
+ if(iRingingTone1Name->Compare(profileTones.RingingTone1())!=0)
+ {
+ delete iRingingTone1Name;
+ iRingingTone1Name=NULL;
+ iRingingTone1Name=profileTones.RingingTone1().AllocL();
+ User::LeaveIfError(iRingingTone1NameProperty.Set(KGASPSUidGlobalAudioSettings,
+ KGASRingingTone1Name,
+ *iRingingTone1Name));
+ }
+ if(iRingingTone2Name->Compare(profileTones.RingingTone2())!=0)
+ {
+ delete iRingingTone2Name;
+ iRingingTone2Name=NULL;
+ iRingingTone2Name=profileTones.RingingTone2().AllocL();
+ User::LeaveIfError(iRingingTone2NameProperty.Set(KGASPSUidGlobalAudioSettings,
+ KGASRingingTone2Name,
+ *iRingingTone2Name));
+ }
+ if(iGASKeypadVolume!=settings.KeypadVolume())
+ {
+
+ CMapGASKeypadVolume(settings.KeypadVolume());
+ User::LeaveIfError(iKeypadVolumeProperty.Set(KGASPSUidGlobalAudioSettings,
+ KGASKeypadToneVolume,
+ iGASKeypadVolume));
+
+
+ }
CleanupStack::PopAndDestroy(currentProfile);
}
#ifdef _DEBUG
@@ -346,6 +575,7 @@
CleanupReleasePushL(*currentProfile);
MProEngToneSettings& settings = currentProfile->ToneSettings();
+ MProEngTones& profileTones=currentProfile->ProfileTones();
if(iWarningTones != settings.WarningAndGameTones())
{
iWarningTones = settings.WarningAndGameTones();
@@ -371,6 +601,76 @@
KGASVibra,
iVibra));
}
+ if(iGASRingingType != settings.RingingType())
+ {
+
+ CMapGASRingingType(settings.RingingType());
+
+ User::LeaveIfError(iRingingTypeProperty.Set(
+ KGASPSUidGlobalAudioSettings,
+ KGASRingingType,
+ iGASRingingType));
+ }
+ if(iMessageToneName->Compare(profileTones.MessageAlertTone())!= 0)
+ {
+ delete iMessageToneName;
+ iMessageToneName=NULL;
+ iMessageToneName=profileTones.MessageAlertTone().AllocL();
+
+ User::LeaveIfError(iMessageToneNameProperty.Set(KGASPSUidGlobalAudioSettings,
+ KGASMessageToneName,
+ *iMessageToneName));
+ }
+
+ if(iEmailToneName->Compare(profileTones.EmailAlertTone())!= 0)
+ {
+ delete iEmailToneName;
+ iEmailToneName=NULL;
+ iEmailToneName=profileTones.EmailAlertTone().AllocL();
+ User::LeaveIfError(iEmailToneNameProperty.Set(KGASPSUidGlobalAudioSettings,
+ KGASEmailToneName,
+ *iEmailToneName));
+ }
+ if(iVideoCallToneName->Compare(profileTones.VideoCallRingingTone())!=0)
+ {
+ delete iVideoCallToneName;
+ iVideoCallToneName=NULL;
+ iVideoCallToneName=profileTones.VideoCallRingingTone().AllocL();
+ User::LeaveIfError(iVideoCallToneNameProperty.Set(KGASPSUidGlobalAudioSettings,
+ KGASVideoCallToneName,
+ *iVideoCallToneName));
+
+ }
+ if(iRingingTone1Name->Compare(profileTones.RingingTone1())!=0)
+ {
+ delete iRingingTone1Name;
+ iRingingTone1Name=NULL;
+ iRingingTone1Name=profileTones.RingingTone1().AllocL();
+ User::LeaveIfError(iRingingTone1NameProperty.Set(KGASPSUidGlobalAudioSettings,
+ KGASRingingTone1Name,
+ *iRingingTone1Name));
+
+ }
+ if(iRingingTone2Name->Compare(profileTones.RingingTone2())!=0)
+ {
+ delete iRingingTone2Name;
+ iRingingTone2Name=NULL;
+ iRingingTone2Name=profileTones.RingingTone2().AllocL();
+ User::LeaveIfError(iRingingTone2NameProperty.Set(KGASPSUidGlobalAudioSettings,
+ KGASRingingTone2Name,
+ *iRingingTone2Name));
+
+ }
+ if(iGASKeypadVolume!=settings.KeypadVolume())
+ {
+
+ CMapGASKeypadVolume( settings.KeypadVolume());
+ User::LeaveIfError(iKeypadVolumeProperty.Set(KGASPSUidGlobalAudioSettings,
+ KGASKeypadToneVolume,
+ iGASKeypadVolume));
+
+
+ }
CleanupStack::PopAndDestroy(currentProfile);
}
@@ -378,6 +678,39 @@
{
DEB_TRACE0(_L("CMyProfileNameArrayObserver::HandleProfileActivationNotificationError"));
}
-
+void CProfileSettingsMonitorServerImpl::CMapGASRingingType(TProfileRingingType aRingingType)
+ {
+ switch(aRingingType)
+ {
+ case EProfileRingingTypeRinging : iGASRingingType=CGlobalAudioSettings::EGASRingingTypeRinging;
+ break;
+
+ case EProfileRingingTypeAscending:iGASRingingType=CGlobalAudioSettings::EGASRingingTypeAscending;
+ break;
+
+ case EProfileRingingTypeRingingOnce :iGASRingingType=CGlobalAudioSettings::EGASRingingTypeRingingOnce;
+ break;
+
+ case EProfileRingingTypeBeepOnce :iGASRingingType=CGlobalAudioSettings::EGASRingingTypeBeepOnce;
+ break;
+
+ case EProfileRingingTypeSilent:iGASRingingType=CGlobalAudioSettings::EGASRingingTypeSilent;
+ break;
+ }
+ }
+void CProfileSettingsMonitorServerImpl::CMapGASKeypadVolume(TProfileKeypadVolume aKeypadVolume)
+ {
+ switch(aKeypadVolume)
+ {
+ case EProfileKeypadVolumeOff : iGASKeypadVolume=CGlobalAudioSettings::EGASKeypadVolumeOff;
+ break;
+ case EProfileKeypadVolumeLevel1 :iGASKeypadVolume=CGlobalAudioSettings::EGASKeypadVolumeLevel1;
+ break;
+ case EProfileKeypadVolumeLevel2 :iGASKeypadVolume=CGlobalAudioSettings::EGASKeypadVolumeLevel2;
+ break;
+ case EProfileKeypadVolumeLevel3 :iGASKeypadVolume=CGlobalAudioSettings::EGASKeypadVolumeLevel3;
+ break;
+ }
+ }
// End of file
--- a/mmmw_info/mmmw_metadata/mmmw_metadata.mrp Fri Jul 23 17:29:03 2010 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-component mmmw_metadata
-source \sf\mw\mmmw\mmmw_info\mmmw_metadata
-source \sf\mw\mmmw\package_definition.xml
-source \sf\mw\mmmw\distribution.policy.s60
-notes_source \component_defs\release.src
-ipr T
--- a/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/conf/openmaxaltestmodule_radioitf.cfg Fri Jul 23 17:29:03 2010 -0500
+++ b/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/conf/openmaxaltestmodule_radioitf.cfg Fri Aug 06 16:55:00 2010 -0500
@@ -739,13 +739,9 @@
ALImpl al_objitf_GetInterface 4 XA_IID_PLAY
ALImpl al_playitf_RegisterCallback
-request Event_XA_RADIO_EVENT_FREQUENCY_CHANGED
-allownextresult -5
+allownextresult -17
ALImpl al_radioitf_SetFrequency 109000000
-wait Event_XA_RADIO_EVENT_FREQUENCY_CHANGED
-release Event_XA_RADIO_EVENT_FREQUENCY_CHANGED
-
ALImpl al_objitf_Destroy MO_RADIO
ALImpl al_objitf_Destroy MO_PLAYER
ALImpl al_objitf_Destroy MO_ENGINE
--- a/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/src/radio/openmaxalradioitftests.cpp Fri Jul 23 17:29:03 2010 -0500
+++ b/mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/src/radio/openmaxalradioitftests.cpp Fri Aug 06 16:55:00 2010 -0500
@@ -83,6 +83,17 @@
status = aItem.GetNextInt(freqRange);
RET_ERR_IF_ERR(status);
+ if (m_PlayItf)
+ {
+ status = (*m_PlayItf)->SetPlayState(
+ m_PlayItf, XA_PLAYSTATE_PLAYING);
+ }
+ else
+ {
+ status = KErrNotFound;
+ return status;
+ }
+
if(m_RadioItf)
{
status = (*m_RadioItf)->SetFreqRange(
@@ -185,12 +196,39 @@
{
TInt status(KErrNone);
TInt freq;
+ XAuint32 currentFreq;
status = aItem.GetNextInt(freq);
- RET_ERR_IF_ERR(status);
+ RET_ERR_IF_ERR(status);
+
+ if (m_PlayItf)
+ {
+ status = (*m_PlayItf)->SetPlayState(
+ m_PlayItf, XA_PLAYSTATE_PLAYING);
+ }
+ else
+ {
+ status = KErrNotFound;
+ return status;
+ }
+
if (m_RadioItf)
{
- status = (*m_RadioItf)->SetFrequency(
- m_RadioItf, freq);
+ status = (*m_RadioItf)->GetFrequency(m_RadioItf, ¤tFreq);
+ if (status != KErrNone)
+ {
+ status = KErrCompletion;
+ return status;
+ }
+ }
+ else
+ {
+ status = KErrNotFound;
+ return status;
+ }
+
+ if (m_RadioItf)
+ {
+ status = (*m_RadioItf)->SetFrequency(m_RadioItf, freq);
if (status != KErrNone)
status = KErrCompletion;
}
@@ -444,10 +482,10 @@
XARadioItf caller,
XAuint32 event
)
-{
-
+{
+
switch (event)
- {
+ {
case XA_RADIO_EVENT_ANTENNA_STATUS_CHANGED:
{
TEventIf antennaStatusEvent( TEventIf::ESetEvent, _L("Event_XA_RADIO_EVENT_ANTENNA_STATUS_CHANGED:") );
--- a/mmmw_plat/system_tone_service_api/tsrc/conf/systemtoneservicestif.cfg Fri Jul 23 17:29:03 2010 -0500
+++ b/mmmw_plat/system_tone_service_api/tsrc/conf/systemtoneservicestif.cfg Fri Aug 06 16:55:00 2010 -0500
@@ -273,4 +273,4 @@
STSSTIF StopAlarm True
STSSTIF Delete
delete STSSTIF
-[Endtest]
\ No newline at end of file
+[Endtest]
--- a/mmmw_plat/system_tone_service_api/tsrc/inc/systemtoneservicestif.h Fri Jul 23 17:29:03 2010 -0500
+++ b/mmmw_plat/system_tone_service_api/tsrc/inc/systemtoneservicestif.h Fri Aug 06 16:55:00 2010 -0500
@@ -147,6 +147,7 @@
virtual void HandleEvent();
+
// Data
TPlayState iPlayState;
--- a/mmmw_plat/telephony_multimedia_service_api/tsrc/TmsAudioServicesTestClass/group/TmsAudioServicesTestClass.pkg Fri Jul 23 17:29:03 2010 -0500
+++ b/mmmw_plat/telephony_multimedia_service_api/tsrc/TmsAudioServicesTestClass/group/TmsAudioServicesTestClass.pkg Fri Aug 06 16:55:00 2010 -0500
@@ -32,7 +32,7 @@
"/epoc32/release/armv5/urel/TmsAudioServicesTestClass.dll" - "c:/Sys/Bin/TmsAudioServicesTestClass.dll"
; If installation process fails, exclude testframework.ini from the sis file and
; copy manually.
-"../../init/TestFramework.ini"-"c:/Testframework/TestFramework.ini"
+;"../../init/TestFramework.ini"-"c:/Testframework/TestFramework.ini"
"../../init/TmsAudioServicesTestClass.ini"-"c:/Testframework/TmsAudioServicesTestClass.ini"
"../../Conf/TMSAudioServicesTestClass.cfg"-"c:/Testframework/TMSAudioServicesTestClass.cfg"
Binary file mmmw_plat/telephony_multimedia_service_api/tsrc/TmsAudioServicesTestClass/sis/TmsAudioServicesTestClass.sis has changed
Binary file mmmw_plat/telephony_multimedia_service_api/tsrc/TmsAudioServicesTestClass/sis/TmsAudioServicesTestClass.sisx has changed
--- a/mmmw_plat/telephony_multimedia_service_api/tsrc/TmsAudioServicesTestClass/src/TmsAudioServicesTestClassBlocks.cpp Fri Jul 23 17:29:03 2010 -0500
+++ b/mmmw_plat/telephony_multimedia_service_api/tsrc/TmsAudioServicesTestClass/src/TmsAudioServicesTestClassBlocks.cpp Fri Aug 06 16:55:00 2010 -0500
@@ -1272,7 +1272,7 @@
{
iLog->Log(_L("CTmsAudioServicesTestClass::OpenDownlink - init Downlink"));
iTmsDnlink->AddObserver(*this, NULL);
- error = iTmsDnlink->Init();
+ error = iTmsDnlink->Init(4);
}
if (error != KErrNone)
@@ -1358,7 +1358,7 @@
{
iLog->Log(_L("CTmsAudioServicesTestClass::OpenDownlink - init Uplink"));
iTmsUplink->AddObserver(*this, NULL);
- error = iTmsUplink->Init();
+ error = iTmsUplink->Init(4);
}
if (error != KErrNone)
@@ -1460,7 +1460,7 @@
{
if ((iUpLinkStatus == INITIALIZED) || (iUpLinkStatus == PAUSED))
{
- iTmsUplink->Start();
+ iTmsUplink->Start(2);
if (iUpLinkStatus == INITIALIZED)
{
@@ -1483,7 +1483,7 @@
{
if ((iDnLinkStatus == INITIALIZED) || (iDnLinkStatus == PAUSED))
{
- iTmsDnlink->Start();
+ iTmsDnlink->Start(2);
if (iDnLinkStatus == INITIALIZED)
{
AddExpectedEvent(EFillBuffer, KMediumTimeout);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/radio_utility/stub/bwins/Radio_Utility_Stubu.def Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,73 @@
+EXPORTS
+ ?GetAutomaticTrafficAnnouncement@CRadioRdsUtility@@QAEHAAH@Z @ 1 NONAME ; int CRadioRdsUtility::GetAutomaticTrafficAnnouncement(int &)
+ ?Close@CRadioRdsUtility@@QAEXXZ @ 2 NONAME ; void CRadioRdsUtility::Close(void)
+ ?PlayerState@CRadioPlayerUtility@@QBE?AW4TPlayerState@@XZ @ 3 NONAME ; enum TPlayerState CRadioPlayerUtility::PlayerState(void) const
+ ?GetBalance@CRadioPlayerUtility@@QBEHAAH0@Z @ 4 NONAME ; int CRadioPlayerUtility::GetBalance(int &, int &) const
+ ?RadioRdsUtilityL@CRadioUtility@@QAEAAVCRadioRdsUtility@@AAVMRadioRdsObserver@@@Z @ 5 NONAME ; class CRadioRdsUtility & CRadioUtility::RadioRdsUtilityL(class MRadioRdsObserver &)
+ ?StationSeek@CRadioFmTunerUtility@@QAEXH@Z @ 6 NONAME ; void CRadioFmTunerUtility::StationSeek(int)
+ ?CancelStationSeek@CRadioFmTunerUtility@@QAEXXZ @ 7 NONAME ; void CRadioFmTunerUtility::CancelStationSeek(void)
+ ?StationSeekByTP@CRadioRdsUtility@@QAEXH@Z @ 8 NONAME ; void CRadioRdsUtility::StationSeekByTP(int)
+ ?SetSquelch@CRadioFmTunerUtility@@QAEHH@Z @ 9 NONAME ; int CRadioFmTunerUtility::SetSquelch(int)
+ ?GetAutomaticTrafficAnnouncement@CBody@CRadioRdsUtility@@QAEHAAH@Z @ 10 NONAME ; int CRadioRdsUtility::CBody::GetAutomaticTrafficAnnouncement(int &)
+ ?GetTrafficProgrammeStatus@CRadioRdsUtility@@QAEHAAH@Z @ 11 NONAME ; int CRadioRdsUtility::GetTrafficProgrammeStatus(int &)
+ ?GetMaxSignalStrength@CRadioFmTunerUtility@@QBEHAAH@Z @ 12 NONAME ; int CRadioFmTunerUtility::GetMaxSignalStrength(int &) const
+ ?GetProgrammeService@CRadioRdsUtility@@QAEHAAV?$TBuf16@$07@@@Z @ 13 NONAME ; int CRadioRdsUtility::GetProgrammeService(class TBuf16<8> &)
+ ?RadioPlayerUtilityL@CRadioUtility@@QAEAAVCRadioPlayerUtility@@AAVMRadioPlayerObserver@@@Z @ 14 NONAME ; class CRadioPlayerUtility & CRadioUtility::RadioPlayerUtilityL(class MRadioPlayerObserver &)
+ ?GetStereoMode@CRadioFmTunerUtility@@QBEHAAH@Z @ 15 NONAME ; int CRadioFmTunerUtility::GetStereoMode(int &) const
+ ?GetRdsSignalStatus@CRadioRdsUtility@@QBEHAAH@Z @ 16 NONAME ; int CRadioRdsUtility::GetRdsSignalStatus(int &) const
+ ?GetRadioTextPlus@CRadioRdsUtility@@QAEHW4TRdsRTplusClass@@AAV?$TBuf16@$0EA@@@@Z @ 17 NONAME ; int CRadioRdsUtility::GetRadioTextPlus(enum TRdsRTplusClass, class TBuf16<64> &)
+ ??1CRadioFmTunerUtility@@EAE@XZ @ 18 NONAME ; CRadioFmTunerUtility::~CRadioFmTunerUtility(void)
+ ?GetRadioText@CRadioRdsUtility@@QAEHAAV?$TBuf16@$0EA@@@@Z @ 19 NONAME ; int CRadioRdsUtility::GetRadioText(class TBuf16<64> &)
+ ?CancelGetPSByTA@CRadioRdsUtility@@QAEXXZ @ 20 NONAME ; void CRadioRdsUtility::CancelGetPSByTA(void)
+ ?RequestTunerControl@CRadioFmTunerUtility@@QAEXXZ @ 21 NONAME ; void CRadioFmTunerUtility::RequestTunerControl(void)
+ ?GetProgrammeIdentification@CRadioRdsUtility@@QAEHAAH@Z @ 22 NONAME ; int CRadioRdsUtility::GetProgrammeIdentification(int &)
+ ?SetBalance@CRadioPlayerUtility@@QAEHHH@Z @ 23 NONAME ; int CRadioPlayerUtility::SetBalance(int, int)
+ ?SetFrequency@CRadioFmTunerUtility@@QAEXH@Z @ 24 NONAME ; void CRadioFmTunerUtility::SetFrequency(int)
+ ?NotifyRdsDataChange@CRadioRdsUtility@@QAEHVTRdsData@@@Z @ 25 NONAME ; int CRadioRdsUtility::NotifyRdsDataChange(class TRdsData)
+ ?CancelSetFrequencyRange@CRadioFmTunerUtility@@QAEXXZ @ 26 NONAME ; void CRadioFmTunerUtility::CancelSetFrequencyRange(void)
+ ?GetFreqByPTY@CRadioRdsUtility@@QAEXH@Z @ 27 NONAME ; void CRadioRdsUtility::GetFreqByPTY(int)
+ ?GetVolume@CRadioPlayerUtility@@QBEHAAH@Z @ 28 NONAME ; int CRadioPlayerUtility::GetVolume(int &) const
+ ?SetVolume@CRadioPlayerUtility@@QAEHH@Z @ 29 NONAME ; int CRadioPlayerUtility::SetVolume(int)
+ ?StationSeekByPTY@CRadioRdsUtility@@QAEXHH@Z @ 30 NONAME ; void CRadioRdsUtility::StationSeekByPTY(int, int)
+ ?GetCapabilities@CRadioRdsUtility@@QBEHAAVTRdsCapabilities@@@Z @ 31 NONAME ; int CRadioRdsUtility::GetCapabilities(class TRdsCapabilities &) const
+ ?CancelRdsStationSeek@CRadioRdsUtility@@QAEXXZ @ 32 NONAME ; void CRadioRdsUtility::CancelRdsStationSeek(void)
+ ?CancelGetFreqByTA@CRadioRdsUtility@@QAEXXZ @ 33 NONAME ; void CRadioRdsUtility::CancelGetFreqByTA(void)
+ ?SetVolumeRamp@CRadioPlayerUtility@@QAEHABVTTimeIntervalMicroSeconds@@@Z @ 34 NONAME ; int CRadioPlayerUtility::SetVolumeRamp(class TTimeIntervalMicroSeconds const &)
+ ?StationSeekByPTY@CBody@CRadioRdsUtility@@QAEXHH@Z @ 35 NONAME ; void CRadioRdsUtility::CBody::StationSeekByPTY(int, int)
+ ?CancelGetFreqByPTY@CRadioRdsUtility@@QAEXXZ @ 36 NONAME ; void CRadioRdsUtility::CancelGetFreqByPTY(void)
+ ?GetAutomaticSwitching@CRadioRdsUtility@@QAEHAAH@Z @ 37 NONAME ; int CRadioRdsUtility::GetAutomaticSwitching(int &)
+ ?GetTrafficAnnouncementStatus@CRadioRdsUtility@@QAEHAAH@Z @ 38 NONAME ; int CRadioRdsUtility::GetTrafficAnnouncementStatus(int &)
+ ?CancelSetFrequency@CRadioFmTunerUtility@@QAEXXZ @ 39 NONAME ; void CRadioFmTunerUtility::CancelSetFrequency(void)
+ ?GetClockTime@CRadioRdsUtility@@QAEHAAVTDateTime@@@Z @ 40 NONAME ; int CRadioRdsUtility::GetClockTime(class TDateTime &)
+ ?CancelAFSearch@CRadioRdsUtility@@QAEXXZ @ 41 NONAME ; void CRadioRdsUtility::CancelAFSearch(void)
+ ?ForceMonoReception@CRadioFmTunerUtility@@QAEHH@Z @ 42 NONAME ; int CRadioFmTunerUtility::ForceMonoReception(int)
+ ?GetProgrammeType@CRadioRdsUtility@@QAEHAAH@Z @ 43 NONAME ; int CRadioRdsUtility::GetProgrammeType(int &)
+ ?GetForcedMonoReception@CRadioFmTunerUtility@@QBEHAAH@Z @ 44 NONAME ; int CRadioFmTunerUtility::GetForcedMonoReception(int &) const
+ ?GetFreqByTA@CRadioRdsUtility@@QAEXXZ @ 45 NONAME ; void CRadioRdsUtility::GetFreqByTA(void)
+ ?CancelGetPSByPTY@CRadioRdsUtility@@QAEXXZ @ 46 NONAME ; void CRadioRdsUtility::CancelGetPSByPTY(void)
+ ?GetFrequencyRange@CRadioFmTunerUtility@@QBEHAAW4TFmRadioFrequencyRange@@AAH1@Z @ 47 NONAME ; int CRadioFmTunerUtility::GetFrequencyRange(enum TFmRadioFrequencyRange &, int &, int &) const
+ ?Stop@CRadioPlayerUtility@@QAEXXZ @ 48 NONAME ; void CRadioPlayerUtility::Stop(void)
+ ?SetFrequencyRange@CRadioFmTunerUtility@@QAEXW4TFmRadioFrequencyRange@@@Z @ 49 NONAME ; void CRadioFmTunerUtility::SetFrequencyRange(enum TFmRadioFrequencyRange)
+ ??1CRadioPlayerUtility@@EAE@XZ @ 50 NONAME ; CRadioPlayerUtility::~CRadioPlayerUtility(void)
+ ?GetFrequency@CRadioFmTunerUtility@@QBEHAAH@Z @ 51 NONAME ; int CRadioFmTunerUtility::GetFrequency(int &) const
+ ?StationSeekByTA@CRadioRdsUtility@@QAEXH@Z @ 52 NONAME ; void CRadioRdsUtility::StationSeekByTA(int)
+ ?Play@CRadioPlayerUtility@@QAEXXZ @ 53 NONAME ; void CRadioPlayerUtility::Play(void)
+ ?CustomInterface@CRadioPlayerUtility@@UAEPAXVTUid@@@Z @ 54 NONAME ; void * CRadioPlayerUtility::CustomInterface(class TUid)
+ ?GetCapabilities@CRadioFmTunerUtility@@QAEHAAVTFmTunerCapabilities@@@Z @ 55 NONAME ; int CRadioFmTunerUtility::GetCapabilities(class TFmTunerCapabilities &)
+ ?IsMute@CRadioPlayerUtility@@QAEHXZ @ 56 NONAME ; int CRadioPlayerUtility::IsMute(void)
+ ?SetAutomaticSwitching@CRadioRdsUtility@@QAEHH@Z @ 57 NONAME ; int CRadioRdsUtility::SetAutomaticSwitching(int)
+ ?SetAutomaticTrafficAnnouncement@CRadioRdsUtility@@QAEHH@Z @ 58 NONAME ; int CRadioRdsUtility::SetAutomaticTrafficAnnouncement(int)
+ ?RadioFmTunerUtilityL@CRadioUtility@@QAEAAVCRadioFmTunerUtility@@AAVMRadioFmTunerObserver@@@Z @ 59 NONAME ; class CRadioFmTunerUtility & CRadioUtility::RadioFmTunerUtilityL(class MRadioFmTunerObserver &)
+ ?GetPSByPTY@CRadioRdsUtility@@QAEXH@Z @ 60 NONAME ; void CRadioRdsUtility::GetPSByPTY(int)
+ ?CancelNotifyRdsDataChange@CRadioRdsUtility@@QAEXXZ @ 61 NONAME ; void CRadioRdsUtility::CancelNotifyRdsDataChange(void)
+ ?EnableTunerInOfflineMode@CRadioFmTunerUtility@@QAEHH@Z @ 62 NONAME ; int CRadioFmTunerUtility::EnableTunerInOfflineMode(int)
+ ?Mute@CRadioPlayerUtility@@QAEHH@Z @ 63 NONAME ; int CRadioPlayerUtility::Mute(int)
+ ?NewL@CRadioUtility@@SAPAV1@H@Z @ 64 NONAME ; class CRadioUtility * CRadioUtility::NewL(int)
+ ?Close@CRadioPlayerUtility@@QAEXXZ @ 65 NONAME ; void CRadioPlayerUtility::Close(void)
+ ?GetPSByTA@CRadioRdsUtility@@QAEXXZ @ 66 NONAME ; void CRadioRdsUtility::GetPSByTA(void)
+ ??1CRadioUtility@@UAE@XZ @ 67 NONAME ; CRadioUtility::~CRadioUtility(void)
+ ?GetSignalStrength@CRadioFmTunerUtility@@QBEHAAH@Z @ 68 NONAME ; int CRadioFmTunerUtility::GetSignalStrength(int &) const
+ ?Close@CRadioFmTunerUtility@@QAEXXZ @ 69 NONAME ; void CRadioFmTunerUtility::Close(void)
+ ?GetSquelch@CRadioFmTunerUtility@@QBEHAAH@Z @ 70 NONAME ; int CRadioFmTunerUtility::GetSquelch(int &) const
+ ?GetMaxVolume@CRadioPlayerUtility@@QBEHAAH@Z @ 71 NONAME ; int CRadioPlayerUtility::GetMaxVolume(int &) const
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/radio_utility/stub/eabi/Radio_Utility_Stubu.def Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,96 @@
+EXPORTS
+ _ZN13CRadioUtility16RadioRdsUtilityLER17MRadioRdsObserver @ 1 NONAME
+ _ZN13CRadioUtility19RadioPlayerUtilityLER20MRadioPlayerObserver @ 2 NONAME
+ _ZN13CRadioUtility20RadioFmTunerUtilityLER21MRadioFmTunerObserver @ 3 NONAME
+ _ZN13CRadioUtility4NewLEi @ 4 NONAME
+ _ZN13CRadioUtilityD0Ev @ 5 NONAME
+ _ZN13CRadioUtilityD1Ev @ 6 NONAME
+ _ZN13CRadioUtilityD2Ev @ 7 NONAME
+ _ZN16CRadioRdsUtility10GetPSByPTYEi @ 8 NONAME
+ _ZN16CRadioRdsUtility11GetFreqByTAEv @ 9 NONAME
+ _ZN16CRadioRdsUtility12GetClockTimeER9TDateTime @ 10 NONAME
+ _ZN16CRadioRdsUtility12GetFreqByPTYEi @ 11 NONAME
+ _ZN16CRadioRdsUtility12GetRadioTextER6TBuf16ILi64EE @ 12 NONAME
+ _ZN16CRadioRdsUtility14CancelAFSearchEv @ 13 NONAME
+ _ZN16CRadioRdsUtility15CancelGetPSByTAEv @ 14 NONAME
+ _ZN16CRadioRdsUtility15StationSeekByTAEi @ 15 NONAME
+ _ZN16CRadioRdsUtility15StationSeekByTPEi @ 16 NONAME
+ _ZN16CRadioRdsUtility16CancelGetPSByPTYEv @ 17 NONAME
+ _ZN16CRadioRdsUtility16GetProgrammeTypeERi @ 18 NONAME
+ _ZN16CRadioRdsUtility16GetRadioTextPlusE15TRdsRTplusClassR6TBuf16ILi64EE @ 19 NONAME
+ _ZN16CRadioRdsUtility16StationSeekByPTYEii @ 20 NONAME
+ _ZN16CRadioRdsUtility17CancelGetFreqByTAEv @ 21 NONAME
+ _ZN16CRadioRdsUtility18CancelGetFreqByPTYEv @ 22 NONAME
+ _ZN16CRadioRdsUtility19GetProgrammeServiceER6TBuf16ILi8EE @ 23 NONAME
+ _ZN16CRadioRdsUtility19NotifyRdsDataChangeE8TRdsData @ 24 NONAME
+ _ZN16CRadioRdsUtility20CancelRdsStationSeekEv @ 25 NONAME
+ _ZN16CRadioRdsUtility21GetAutomaticSwitchingERi @ 26 NONAME
+ _ZN16CRadioRdsUtility21SetAutomaticSwitchingEi @ 27 NONAME
+ _ZN16CRadioRdsUtility25CancelNotifyRdsDataChangeEv @ 28 NONAME
+ _ZN16CRadioRdsUtility25GetTrafficProgrammeStatusERi @ 29 NONAME
+ _ZN16CRadioRdsUtility26GetProgrammeIdentificationERi @ 30 NONAME
+ _ZN16CRadioRdsUtility28GetTrafficAnnouncementStatusERi @ 31 NONAME
+ _ZN16CRadioRdsUtility31GetAutomaticTrafficAnnouncementERi @ 32 NONAME
+ _ZN16CRadioRdsUtility31SetAutomaticTrafficAnnouncementEi @ 33 NONAME
+ _ZN16CRadioRdsUtility5CloseEv @ 34 NONAME
+ _ZN16CRadioRdsUtility9GetPSByTAEv @ 35 NONAME
+ _ZN19CRadioPlayerUtility10SetBalanceEii @ 36 NONAME
+ _ZN19CRadioPlayerUtility13SetVolumeRampERK25TTimeIntervalMicroSeconds @ 37 NONAME
+ _ZN19CRadioPlayerUtility15CustomInterfaceE4TUid @ 38 NONAME
+ _ZN19CRadioPlayerUtility4MuteEi @ 39 NONAME
+ _ZN19CRadioPlayerUtility4PlayEv @ 40 NONAME
+ _ZN19CRadioPlayerUtility4StopEv @ 41 NONAME
+ _ZN19CRadioPlayerUtility5CloseEv @ 42 NONAME
+ _ZN19CRadioPlayerUtility6IsMuteEv @ 43 NONAME
+ _ZN19CRadioPlayerUtility9SetVolumeEi @ 44 NONAME
+ _ZN19CRadioPlayerUtilityD0Ev @ 45 NONAME
+ _ZN19CRadioPlayerUtilityD1Ev @ 46 NONAME
+ _ZN19CRadioPlayerUtilityD2Ev @ 47 NONAME
+ _ZN20CRadioFmTunerUtility10SetSquelchEi @ 48 NONAME
+ _ZN20CRadioFmTunerUtility11StationSeekEi @ 49 NONAME
+ _ZN20CRadioFmTunerUtility12SetFrequencyEi @ 50 NONAME
+ _ZN20CRadioFmTunerUtility15GetCapabilitiesER20TFmTunerCapabilities @ 51 NONAME
+ _ZN20CRadioFmTunerUtility17CancelStationSeekEv @ 52 NONAME
+ _ZN20CRadioFmTunerUtility17SetFrequencyRangeE22TFmRadioFrequencyRange @ 53 NONAME
+ _ZN20CRadioFmTunerUtility18CancelSetFrequencyEv @ 54 NONAME
+ _ZN20CRadioFmTunerUtility18ForceMonoReceptionEi @ 55 NONAME
+ _ZN20CRadioFmTunerUtility19RequestTunerControlEv @ 56 NONAME
+ _ZN20CRadioFmTunerUtility23CancelSetFrequencyRangeEv @ 57 NONAME
+ _ZN20CRadioFmTunerUtility24EnableTunerInOfflineModeEi @ 58 NONAME
+ _ZN20CRadioFmTunerUtility5CloseEv @ 59 NONAME
+ _ZN20CRadioFmTunerUtilityD0Ev @ 60 NONAME
+ _ZN20CRadioFmTunerUtilityD1Ev @ 61 NONAME
+ _ZN20CRadioFmTunerUtilityD2Ev @ 62 NONAME
+ _ZNK16CRadioRdsUtility15GetCapabilitiesER16TRdsCapabilities @ 63 NONAME
+ _ZNK16CRadioRdsUtility18GetRdsSignalStatusERi @ 64 NONAME
+ _ZNK19CRadioPlayerUtility10GetBalanceERiS0_ @ 65 NONAME
+ _ZNK19CRadioPlayerUtility11PlayerStateEv @ 66 NONAME
+ _ZNK19CRadioPlayerUtility12GetMaxVolumeERi @ 67 NONAME
+ _ZNK19CRadioPlayerUtility9GetVolumeERi @ 68 NONAME
+ _ZNK20CRadioFmTunerUtility10GetSquelchERi @ 69 NONAME
+ _ZNK20CRadioFmTunerUtility12GetFrequencyERi @ 70 NONAME
+ _ZNK20CRadioFmTunerUtility13GetStereoModeERi @ 71 NONAME
+ _ZNK20CRadioFmTunerUtility17GetFrequencyRangeER22TFmRadioFrequencyRangeRiS2_ @ 72 NONAME
+ _ZNK20CRadioFmTunerUtility17GetSignalStrengthERi @ 73 NONAME
+ _ZNK20CRadioFmTunerUtility20GetMaxSignalStrengthERi @ 74 NONAME
+ _ZNK20CRadioFmTunerUtility22GetForcedMonoReceptionERi @ 75 NONAME
+ _ZTI13CRadioUtility @ 76 NONAME
+ _ZTI16CRadioRdsUtility @ 77 NONAME
+ _ZTI19CRadioPlayerUtility @ 78 NONAME
+ _ZTI20CRadioFmTunerUtility @ 79 NONAME
+ _ZTIN13CRadioMonitor5CBodyE @ 80 NONAME
+ _ZTIN13CRadioUtility5CBodyE @ 81 NONAME
+ _ZTIN16CRadioRdsUtility5CBodyE @ 82 NONAME
+ _ZTIN19CRadioPlayerUtility5CBodyE @ 83 NONAME
+ _ZTIN20CRadioFmTunerUtility5CBodyE @ 84 NONAME
+ _ZTV13CRadioUtility @ 85 NONAME
+ _ZTV16CRadioRdsUtility @ 86 NONAME
+ _ZTV19CRadioPlayerUtility @ 87 NONAME
+ _ZTV20CRadioFmTunerUtility @ 88 NONAME
+ _ZTVN13CRadioMonitor5CBodyE @ 89 NONAME
+ _ZTVN13CRadioUtility5CBodyE @ 90 NONAME
+ _ZTVN16CRadioRdsUtility5CBodyE @ 91 NONAME
+ _ZTVN19CRadioPlayerUtility5CBodyE @ 92 NONAME
+ _ZTVN20CRadioFmTunerUtility5CBodyE @ 93 NONAME
+ _ZThn4_N19CRadioPlayerUtility15CustomInterfaceE4TUid @ 94 NONAME
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/radio_utility/stub/group/Radio_Utility_Stub.mmp Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Project definition file for project RadioUtilityStub
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+TARGET Radio_Utility_Stub.dll
+TARGETTYPE DLL
+CAPABILITY CAP_GENERAL_DLL
+VENDORID VID_DEFAULT
+UID 0x1000008D 0x01000001
+VERSION 10.1
+
+SOURCEPATH ../../src
+SOURCE RadioUtility.cpp
+SOURCE RadioUtilityBody.cpp
+SOURCE RadioPlayerUtility.cpp
+SOURCE RadioFmTunerUtility.cpp
+SOURCE RadioRdsUtility.cpp
+SOURCE RadioMonitorBody.cpp
+SOURCE RadioPlayerUtilityBody.cpp
+SOURCE RadioFmTunerUtilityBody.cpp
+SOURCE RadioRdsUtilityBody.cpp
+
+SOURCEPATH ../src
+
+USERINCLUDE ../src
+USERINCLUDE ../../src
+USERINCLUDE ../../inc
+USERINCLUDE ../../../inc
+USERINCLUDE ../../../../../inc
+USERINCLUDE /sf/app/radio/radioengine/utils/inc
+
+MW_LAYER_SYSTEMINCLUDE
+
+//LIBRARY edllstub.lib
+LIBRARY euser.lib
+LIBRARY RadioSession_Stub.lib
+LIBRARY CustomInterfaceUtility.lib
+LIBRARY flogger.lib
+
+MACRO STUB_CONSTELLATION
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/radio_utility/stub/group/bld.inf Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Project build file for Radio_Utility_Stub
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+// Platforms the component needs to be built on
+//
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// iby file
+../rom/Radio_Utility_Stub.iby CORE_MW_LAYER_IBY_EXPORT_PATH(Radio_Utility_Stub.iby)
+
+PRJ_MMPFILES
+Radio_Utility_Stub.mmp
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/radio_utility/stub/rom/Radio_Utility_Stub.iby Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: IBY file for the Radio Utility
+*
+*/
+
+
+#ifndef RADIO_UTILITY_IBY
+#define RADIO_UTILITY_IBY
+
+#ifdef __FM_RADIO
+
+file=ABI_DIR\BUILD_DIR\Radio_Utility_Stub.dll SHARED_LIB_DIR\Radio_Utility_Stub.dll
+
+// Stub sis
+data = ZSYSTEM\install\Radio_Utility_Stub.sis system\install\Radio_Utility_Stub.sis
+
+#endif //__FM_RADIO
+#endif // RADIO_UTILITY_IBY
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/radio_utility/stub/src/StubRadioFmTunerUtilityBody.cpp Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,327 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Radio FM Tuner Utility implementation body's stub.
+*
+*/
+
+
+#include "RadioFmTunerUtilityBody.h"
+#include "RadioUtilityBody.h"
+#include "RadioStubManager.h"
+
+
+#define STUB CRadioStubManager::GetRadioStubManager()->iTuner
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CRadioFmTunerUtility::CBody* CRadioFmTunerUtility::CBody::NewL(
+ RRadioSession& aRadioSession,
+ MRadioFmTunerObserver& aObserver )
+ {
+ if ( STUB.iLeaveNewL.iError )
+ {
+ User::Leave( STUB.iLeaveNewL.iError );
+ }
+ CRadioFmTunerUtility::CBody* s = new(ELeave) CRadioFmTunerUtility::CBody( aRadioSession, aObserver );
+ CleanupStack::PushL(s);
+ s->ConstructL();
+ CleanupStack::Pop();
+ return s;
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::ConstructL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+void CRadioFmTunerUtility::CBody::ConstructL()
+ {
+ if ( STUB.iLeaveErrorForConstructL.iError )
+ {
+ User::Leave( STUB.iLeaveErrorForConstructL.iError );
+ }
+ STUB.iRadioFmTunerUtilityClient = &iRadioFmTunerUtilityClient;
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::CBody
+// -----------------------------------------------------------------------------
+//
+CRadioFmTunerUtility::CBody::CBody(
+ RRadioSession& aRadioSession,
+ MRadioFmTunerObserver& aObserver )
+ :iRadioSession( aRadioSession ),
+ iRadioFmTunerUtilityClient( aObserver )
+
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::~CBody
+// -----------------------------------------------------------------------------
+//
+CRadioFmTunerUtility::CBody::~CBody()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::RequestTunerControl
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioFmTunerUtility::CBody::RequestTunerControl()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::Close
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioFmTunerUtility::CBody::Close()
+ {
+ // Consider releasing tuner control here.
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::GetCapabilities
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioFmTunerUtility::CBody::GetCapabilities(
+ TFmTunerCapabilities& aCaps ) const
+ {
+ aCaps.iTunerBands = STUB.iCaps.iTunerBands;
+ aCaps.iTunerFunctions = STUB.iCaps.iTunerFunctions;
+ aCaps.iAdditionalFunctions1 = STUB.iCaps.iAdditionalFunctions1;
+ aCaps.iAdditionalFunctions2 = STUB.iCaps.iAdditionalFunctions2;
+ return STUB.iGetCapabilitiesError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::EnableTunerInOfflineMode
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioFmTunerUtility::CBody::EnableTunerInOfflineMode(
+ TBool aEnable )
+ {
+ STUB.iTunerInOfflineMode = aEnable;
+ return STUB.iEnableTunerInOfflineModeError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::GetFrequencyRange
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioFmTunerUtility::CBody::GetFrequencyRange(
+ TFmRadioFrequencyRange& aRange,
+ TInt& aMinFreq,
+ TInt& aMaxFreq ) const
+ {
+
+ aRange = STUB.iRange;
+ aMinFreq = STUB.iMinFreq;
+ aMaxFreq = STUB.iMaxFreq;
+#ifdef _DEBUG
+ RDebug::Print(_L("CRadioFmTunerUtility::CBody::GetFrequencyRange, aRange = %d, aMinFreq = %d, aMaxFreq = %d"),
+ aRange, aMinFreq, aMaxFreq);
+#endif
+ return STUB.iGetFrequencyRangeError.Error();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::SetFrequencyRange
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioFmTunerUtility::CBody::SetFrequencyRange(
+ TFmRadioFrequencyRange aRange )
+ {
+#ifdef _DEBUG
+ RDebug::Print(_L("CRadioFmTunerUtility::CBody::SetFrequencyRange, aRange = %d"), aRange);
+#endif
+ STUB.iPreviousRange = STUB.iRange;
+ STUB.iRange = aRange;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::CancelSetFrequencyRange
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioFmTunerUtility::CBody::CancelSetFrequencyRange()
+ {
+ STUB.iRange = STUB.iPreviousRange;
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::SetFrequency
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioFmTunerUtility::CBody::SetFrequency(
+ TInt aFrequency )
+ {
+#ifdef _DEBUG
+ RDebug::Print(_L("CRadioFmTunerUtility::CBody::SetFrequency, aFrequency = %d"), aFrequency);
+#endif
+ STUB.iPreviousFrequency = STUB.iFrequency;
+ STUB.iFrequency = aFrequency;
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::CancelSetFrequencyRange
+// Body of CancelSetFrequencyRange
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioFmTunerUtility::CBody::CancelSetFrequency()
+ {
+ STUB.iFrequency = STUB.iPreviousFrequency;
+ STUB.iPreviousFrequency = 0;
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::GetFrequency
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioFmTunerUtility::CBody::GetFrequency(
+ TInt& aFrequency ) const
+ {
+ aFrequency = STUB.iFrequency;
+ return STUB.iGetFrequencyError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::StationSeek
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioFmTunerUtility::CBody::StationSeek(
+ TBool aUpwards )
+ {
+#ifdef _DEBUG
+ RDebug::Print(_L("CRadioFmTunerUtility::CBody::StationSeek, aUpwards = %d"), aUpwards);
+#endif
+ STUB.iStationSeekUpwards = aUpwards;
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::CancelStationSeek
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioFmTunerUtility::CBody::CancelStationSeek()
+ {
+ STUB.iStationSeekUpwards = EFalse;
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::GetSignalStrength
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioFmTunerUtility::CBody::GetSignalStrength(
+ TInt& aSignalStrength ) const
+ {
+ aSignalStrength = STUB.iSignalStrength;
+ return STUB.iGetSignalStrengthError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::GetMaxSignalStrength
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioFmTunerUtility::CBody::GetMaxSignalStrength(
+ TInt& aMaxSignalStrength ) const
+ {
+ aMaxSignalStrength = STUB.iMaxSignalStrength;
+ return STUB.iGetMaxSignalStrengthError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::GetStereoMode
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioFmTunerUtility::CBody::GetStereoMode(
+ TBool& aStereo ) const
+ {
+ aStereo = STUB.iStereoMode;
+ return STUB.iGetStereoModeError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::ForceMonoReception
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioFmTunerUtility::CBody::ForceMonoReception(
+ TBool aForcedMono)
+ {
+ STUB.iForcedMono = aForcedMono;
+ return STUB.iForcedMonoReceptionError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::GetForcedMonoReception
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioFmTunerUtility::CBody::GetForcedMonoReception(
+ TBool& aForcedMono ) const
+ {
+ aForcedMono = STUB.iForcedMono;
+ return STUB.iGetForcedMonoReceptionError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::SetSquelch
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioFmTunerUtility::CBody::SetSquelch(
+ TBool aSquelch )
+ {
+ STUB.iSquelch = aSquelch;
+ return STUB.iSetSquelchError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioFmTunerUtility::CBody::GetSquelch
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioFmTunerUtility::CBody::GetSquelch(
+ TBool& aSquelch ) const
+ {
+ aSquelch = STUB.iSquelch;
+ return STUB.iGetSquelchError.Error();
+ }
+
+// End of File
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/radio_utility/stub/src/StubRadioPlayerUtilityBody.cpp Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,268 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Radio Player Utility body's stub implementation
+*
+*/
+
+
+#include <custominterfaceutility.h>
+#include "RadioServerData.h"
+#include "RadioPlayerUtilityBody.h"
+#include "RadioSession.h"
+#include "RadioStubManager.h"
+
+#define STUB CRadioStubManager::GetRadioStubManager()->iPlayer
+
+// ======== MEMBER FUNCTIONS ========
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::CBody::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+
+CRadioPlayerUtility::CBody* CRadioPlayerUtility::CBody::NewL(
+ RRadioSession& aRadioSession,
+ MRadioPlayerObserver& aObserver )
+ {
+ if ( STUB.iLeaveNewL.iError )
+ {
+ User::Leave( STUB.iLeaveNewL.iError );
+ }
+ CRadioPlayerUtility::CBody* s = new(ELeave) CRadioPlayerUtility::CBody( aRadioSession, aObserver);
+ CleanupStack::PushL(s);
+ s->ConstructL();
+ CleanupStack::Pop();
+ return s;
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::ConstructL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+void CRadioPlayerUtility::CBody::ConstructL()
+ {
+ if ( STUB.iLeaveErrorForConstructL.iError )
+ {
+ User::Leave( STUB.iLeaveErrorForConstructL.iError );
+ }
+ STUB.iRadioPlayerUtilityClient = &iRadioPlayerUtilityClient;
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::CBody::CBody
+// -----------------------------------------------------------------------------
+//
+CRadioPlayerUtility::CBody::CBody(
+ RRadioSession& aRadioSession,
+ MRadioPlayerObserver& aObserver )
+ :iRadioSession( aRadioSession ),
+ iRadioPlayerUtilityClient( aObserver )
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CRadioPlayerUtility::CBody::~CBody()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::CBody::PlayerState
+// Get the player's state.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+//
+void CRadioPlayerUtility::CBody::PlayerState(
+ TPlayerState& aPlayerState ) const
+ {
+ aPlayerState = STUB.iPlayerState;
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::CBody::Close
+// Stops radio playback only if no other primary clients are connected to the
+// radio server.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioPlayerUtility::CBody::Close()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::CBody::Play
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioPlayerUtility::CBody::Play()
+ {
+ STUB.iPlayerState = ERadioPlayerPlaying;
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::CBody::Stop
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioPlayerUtility::CBody::Stop()
+ {
+ STUB.iPlayerState = ERadioPlayerIdle;
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::CBody::Mute
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioPlayerUtility::CBody::Mute(
+ TBool aMute )
+ {
+ STUB.iMuteStatus = aMute;
+ return STUB.iMuteError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::CBody::IsMute
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TBool CRadioPlayerUtility::CBody::IsMute()
+ {
+ return STUB.iMuteStatus;
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::CBody::SetVolume
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioPlayerUtility::CBody::SetVolume(
+ TInt aVolume )
+ {
+ STUB.iVolume = aVolume;
+ return STUB.iSetVolumeError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::CBody::GetVolume
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioPlayerUtility::CBody::GetVolume(
+ TInt& aVolume ) const
+ {
+ aVolume = STUB.iVolume;
+ return STUB.iGetVolumeError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::CBody::SetVolumeRamp
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioPlayerUtility::CBody::SetVolumeRamp(
+ const TTimeIntervalMicroSeconds& aRampInterval )
+ {
+#ifdef _DEBUG
+ RDebug::Print(_L("CRadioPlayerUtility::CBody::SetVolumeRamp"));
+#endif
+ STUB.iRampInterval = aRampInterval;
+ return STUB.iSetVolumeRampError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::CBody::GetMaxVolume
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioPlayerUtility::CBody::GetMaxVolume(
+ TInt& aMaxVolume ) const
+ {
+ aMaxVolume = STUB.iMaxVolume;
+ return STUB.iGetMaxVolumeError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::CBody::SetBalance
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioPlayerUtility::CBody::SetBalance(
+ TInt aLeftPercentage,
+ TInt aRightPercentage )
+ {
+#ifdef _DEBUG
+ RDebug::Print(_L("CRadioPlayerUtility::CBody::SetBalance, aLeftPercentage = %d, aRightPercentage = %d"),
+ aLeftPercentage, aRightPercentage);
+#endif
+ STUB.iLeftPercentage = aLeftPercentage;
+ STUB.iRightPercentage = aRightPercentage;
+ return STUB.iSetBalanceError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::CBody::GetBalance
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioPlayerUtility::CBody::GetBalance(
+ TInt& aLeftPercentage,
+ TInt& aRightPercentage ) const
+ {
+ aLeftPercentage = STUB.iLeftPercentage;
+ aRightPercentage = STUB.iRightPercentage;
+ return STUB.iGetBalanceError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioPlayerUtility::CBody::CustomInterface
+// Get a custom interface for the specified interface Id.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TAny* CRadioPlayerUtility::CBody::CustomInterface(
+ TUid aInterfaceId )
+ {
+// TAny* ci = NULL;
+// return ci;
+#ifdef _DEBUG
+ RDebug::Print(_L("CRadioPlayerUtility::CBody::CustomInterface, aInterfaceId = %d"), aInterfaceId);
+#endif
+ TAny* ci = NULL;
+ CCustomInterfaceUtility* customInterfaceUtil = NULL;
+
+ TRAPD( error, customInterfaceUtil = CCustomInterfaceUtility::NewL( iRadioSession ) );
+
+ if ( !error )
+ {
+ ci = customInterfaceUtil->CustomInterface( aInterfaceId );
+ if ( !ci )
+ {
+ // The custom interface utility is owned by the custom interface, implicitly.
+ // The custom interface utility instance is destroyed when the
+ // custom interface is finally destroyed!
+ // But if there's no valid ci, we need to take care of deleting the
+ // custom interface utility instance.
+ delete customInterfaceUtil;
+ }
+ }
+ return ci;
+ }
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/radio_utility/stub/src/StubRadioRdsUtilityBody.cpp Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,433 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Radio RDS Utility body's stub implementation
+*
+*/
+
+
+#include "RadioRdsUtilityBody.h"
+#include "RadioServerData.h"
+#include "RadioSession.h"
+#include "RadioStubManager.h"
+
+#define STUB CRadioStubManager::GetRadioStubManager()->iRds
+
+// ======== MEMBER FUNCTIONS ========
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CRadioRdsUtility::CBody* CRadioRdsUtility::CBody::NewL(
+ RRadioSession& aRadioSession,
+ MRadioRdsObserver& aObserver )
+ {
+ if ( STUB.iLeaveNewL.iError )
+ {
+ User::Leave( STUB.iLeaveNewL.iError );
+ }
+ CRadioRdsUtility::CBody* s = new(ELeave) CRadioRdsUtility::CBody( aRadioSession, aObserver );
+ CleanupStack::PushL(s);
+ s->ConstructL();
+ CleanupStack::Pop();
+ return s;
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::ConstructL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::ConstructL()
+ {
+ if ( STUB.iLeaveErrorForConstructL.iError )
+ {
+ User::Leave( STUB.iLeaveErrorForConstructL.iError );
+ }
+ STUB.iRadioRdsUtilityClient = &iRadioRdsUtilityClient;
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::CBody
+// -----------------------------------------------------------------------------
+//
+CRadioRdsUtility::CBody::CBody(
+ RRadioSession& aRadioSession,
+ MRadioRdsObserver& aObserver )
+ : iRadioSession(aRadioSession),
+ iRadioRdsUtilityClient(aObserver)
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CRadioRdsUtility::CBody::~CBody()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::Close
+// Cancel all requested RDS notifications if any were requested.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::Close()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetCapabilities
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioRdsUtility::CBody::GetCapabilities(
+ TRdsCapabilities& aCaps ) const
+ {
+ if ( !STUB.iGetCapabilitiesError.Error() )
+ {
+ aCaps.iRdsFunctions = STUB.iCaps.iRdsFunctions;
+ aCaps.iAdditionalFunctions1 = STUB.iCaps.iAdditionalFunctions1;
+ aCaps.iAdditionalFunctions2 = STUB.iCaps.iAdditionalFunctions2;
+ }
+ return STUB.iGetCapabilitiesError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetRdsSignalStatus
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioRdsUtility::CBody::GetRdsSignalStatus(
+ TBool& aRdsSignal ) const
+ {
+ aRdsSignal = STUB.iRdsSignal;
+ return STUB.iGetRdsSignalStatusError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::NotifyRdsDataChange
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioRdsUtility::CBody::NotifyRdsDataChange(
+ TRdsData aRdsData )
+ {
+ iRdsDataReq.iRdsFunctions = aRdsData.iRdsFunctions;
+ iRdsDataReq.iAdditionalFunctions1 = aRdsData.iAdditionalFunctions1;
+ iRdsDataReq.iAdditionalFunctions2 = aRdsData.iAdditionalFunctions2;
+ return STUB.iNotifyRdsDataChangeError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::CancelNotifyRdsDataChange
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::CancelNotifyRdsDataChange()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::SetAutomaticSwitching
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioRdsUtility::CBody::SetAutomaticSwitching(
+ TBool aAuto )
+ {
+ STUB.iAutomaticSwitching = aAuto;
+ return STUB.iSetAutomaticSwitchingError.Error();
+
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetAutomaticSwitching
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioRdsUtility::CBody::GetAutomaticSwitching(
+ TBool& aAuto )
+ {
+ aAuto = STUB.iAutomaticSwitching;
+ return STUB.iGetAutomaticSwitchingError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::CancelAFSearch
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::CancelAFSearch()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::SetAutomaticTrafficAnnouncement
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioRdsUtility::CBody::SetAutomaticTrafficAnnouncement(
+ TBool aAuto )
+ {
+ STUB.iTaStatus = aAuto;
+ return STUB.iSetAutomaticTrafficAnnouncementError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetAutomaticTrafficAnnouncement
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioRdsUtility::CBody::GetAutomaticTrafficAnnouncement(
+ TBool& aAuto )
+ {
+ aAuto = STUB.iTaStatus;
+ return STUB.iGetAutomaticTrafficAnnouncementError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::StationSeekByPTY
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::StationSeekByPTY(
+ TRdsProgrammeType /*aPty*/,
+ TBool /*aUpwards*/ )
+ {
+ iRadioRdsUtilityClient.MrroStationSeekByPTYComplete(
+ STUB.iStationSeekByPTYError.Error(), STUB.iFrequency );
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::StationSeekByTA
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::StationSeekByTA(
+ TBool /*aSeekUp*/ )
+ {
+ iRadioRdsUtilityClient.MrroStationSeekByTAComplete( STUB.iStationSeekByTAError.Error(), STUB.iFrequency );
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::StationSeekByTP
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::StationSeekByTP(
+ TBool /*aSeekUp*/ )
+ {
+ iRadioRdsUtilityClient.MrroStationSeekByTPComplete( STUB.iStationSeekByTPError.Error(), STUB.iFrequency );
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::CancelRdsStationSeek
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::CancelRdsStationSeek()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetFreqByPTY
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::GetFreqByPTY(
+ TRdsProgrammeType /*aPty*/ )
+ {
+ iRadioRdsUtilityClient.MrroGetFreqByPTYComplete( STUB.iGetFreqByPTYError.Error(), STUB.iFreqList );
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::CancelGetFreqByPTY
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::CancelGetFreqByPTY()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetFreqByTA
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::GetFreqByTA()
+ {
+ iRadioRdsUtilityClient.MrroGetFreqByTAComplete( STUB.iGetFreqByTAError.Error(), STUB.iFreqList );
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::CancelGetFreqByTA
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::CancelGetFreqByTA()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetPSByPTY
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::GetPSByPTY(
+ TRdsProgrammeType /*aPty*/ )
+ {
+ iRadioRdsUtilityClient.MrroGetPSByPTYComplete( STUB.iGetPSByPTYError.Error(), STUB.iPsList );
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::CancelGetPSByPTY
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::CancelGetPSByPTY()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetPSByTA
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::GetPSByTA()
+ {
+ iRadioRdsUtilityClient.MrroGetPSByPTYComplete( STUB.iGetPSByTAError.Error(), STUB.iPsList );
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::CancelGetPSByTA
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CRadioRdsUtility::CBody::CancelGetPSByTA()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetProgrammeIdentification
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioRdsUtility::CBody::GetProgrammeIdentification(
+ TInt& /*aPi*/ )
+ {
+ return STUB.iGetProgrammeIdentificationError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetProgrammeType
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioRdsUtility::CBody::GetProgrammeType(
+ TRdsProgrammeType& /*aPty*/ )
+ {
+ return STUB.iGetProgrammeTypeError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetProgrammeService
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioRdsUtility::CBody::GetProgrammeService(
+ TRdsPSName& aPs )
+ {
+ if ( STUB.iPs.Length() )
+ {
+ aPs.Copy( STUB.iPs );
+ }
+
+ return STUB.iGetProgrammeServiceError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetRadioText
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioRdsUtility::CBody::GetRadioText(
+ TRdsRadioText& aRt )
+ {
+ if ( STUB.iRtPlusData.Length() )
+ {
+ aRt.Copy( STUB.iRtPlusData );
+ }
+
+ return STUB.iGetRadioTextError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetRadioTextPlus
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioRdsUtility::CBody::GetRadioTextPlus(
+ TRdsRTplusClass /*aRtPlusClass*/,
+ TRdsRadioText& aRtPlusData )
+ {
+
+ if ( STUB.iRtPlusData.Length() )
+ {
+ aRtPlusData.Copy( STUB.iRtPlusData );
+ }
+
+ return STUB.iGetRadioTextPlusError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetClockTime
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioRdsUtility::CBody::GetClockTime(
+ TDateTime& aCt )
+ {
+ aCt = STUB.iCt;
+ return STUB.iGetClockTimeError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetTrafficAnnouncementStatus
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioRdsUtility::CBody::GetTrafficAnnouncementStatus(
+ TBool& aTaStatus )
+ {
+ STUB.iTaStatus = aTaStatus;
+ return STUB.iGetTrafficAnnouncementStatusError.Error();
+ }
+
+// -----------------------------------------------------------------------------
+// CRadioRdsUtility::CBody::GetTrafficProgrammeStatus
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CRadioRdsUtility::CBody::GetTrafficProgrammeStatus(
+ TBool& aTpStatus )
+ {
+ aTpStatus = STUB.iTpStatus;
+ return STUB.iGetTrafficProgrammeStatusError.Error();
+ }
+
+
+//End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/radioserver/Session/stub/bwins/RadioSession_Stubu.def Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,71 @@
+EXPORTS
+ ?CustomCommandAsync@RRadioSession@@UAEXABV?$TPckgBuf@VTMMFMessageDestination@@@@HABVTDesC8@@1AAVTRequestStatus@@@Z @ 1 NONAME ; void RRadioSession::CustomCommandAsync(class TPckgBuf<class TMMFMessageDestination> const &, int, class TDesC8 const &, class TDesC8 const &, class TRequestStatus &)
+ ?StationSeekByTP@RRadioSession@@QAEXH@Z @ 2 NONAME ; void RRadioSession::StationSeekByTP(int)
+ ?SetSquelch@RRadioSession@@QAEHH@Z @ 3 NONAME ; int RRadioSession::SetSquelch(int)
+ ?CustomCommandAsync@RRadioSession@@UAEXABV?$TPckgBuf@VTMMFMessageDestination@@@@HABVTDesC8@@1AAVTDes8@@AAVTRequestStatus@@@Z @ 4 NONAME ; void RRadioSession::CustomCommandAsync(class TPckgBuf<class TMMFMessageDestination> const &, int, class TDesC8 const &, class TDesC8 const &, class TDes8 &, class TRequestStatus &)
+ ?NotifyRadioTextPlusChange@RRadioSession@@QAEHAAV?$RArray@H@@@Z @ 5 NONAME ; int RRadioSession::NotifyRadioTextPlusChange(class RArray<int> &)
+ ?CancelGetPSByTA@RRadioSession@@QAEXXZ @ 6 NONAME ; void RRadioSession::CancelGetPSByTA(void)
+ ?NotifyRdsDataChange@RRadioSession@@QAEHVTRsRdsData@@@Z @ 7 NONAME ; int RRadioSession::NotifyRdsDataChange(class TRsRdsData)
+ ?CancelGetFreqByTA@RRadioSession@@QAEXXZ @ 8 NONAME ; void RRadioSession::CancelGetFreqByTA(void)
+ ?Connect@RRadioSession@@QAEHAAVMRadioObserver@@H@Z @ 9 NONAME ; int RRadioSession::Connect(class MRadioObserver &, int)
+ ?GetTrafficAnnouncementStatus@RRadioSession@@QAEHAAH@Z @ 10 NONAME ; int RRadioSession::GetTrafficAnnouncementStatus(int &)
+ ?GetAutomaticSwitching@RRadioSession@@QAEHAAH@Z @ 11 NONAME ; int RRadioSession::GetAutomaticSwitching(int &)
+ ?CancelGetFreqByPTY@RRadioSession@@QAEXXZ @ 12 NONAME ; void RRadioSession::CancelGetFreqByPTY(void)
+ ?GetMuteStatus@RRadioSession@@QBEHAAH@Z @ 13 NONAME ; int RRadioSession::GetMuteStatus(int &) const
+ ?StationSeekByTA@RRadioSession@@QAEXH@Z @ 14 NONAME ; void RRadioSession::StationSeekByTA(int)
+ ?SetVolume@RRadioSession@@QAEHH@Z @ 15 NONAME ; int RRadioSession::SetVolume(int)
+ ?GetMaxSignalStrength@RRadioSession@@QBEHAAH@Z @ 16 NONAME ; int RRadioSession::GetMaxSignalStrength(int &) const
+ ?GetForceMonoReception@RRadioSession@@QBEHAAH@Z @ 17 NONAME ; int RRadioSession::GetForceMonoReception(int &) const
+ ?GetProgrammeType@RRadioSession@@QAEHAAH@Z @ 18 NONAME ; int RRadioSession::GetProgrammeType(int &)
+ ?GetTrafficProgrammeStatus@RRadioSession@@QAEHAAH@Z @ 19 NONAME ; int RRadioSession::GetTrafficProgrammeStatus(int &)
+ ?GetFrequencyRange@RRadioSession@@QBEHAAW4TRsFrequencyRange@@AAH1@Z @ 20 NONAME ; int RRadioSession::GetFrequencyRange(enum TRsFrequencyRange &, int &, int &) const
+ ?SetAutomaticSwitching@RRadioSession@@QAEHH@Z @ 21 NONAME ; int RRadioSession::SetAutomaticSwitching(int)
+ ?GetAutomaticTrafficAnnouncement@RRadioSession@@QAEHAAH@Z @ 22 NONAME ; int RRadioSession::GetAutomaticTrafficAnnouncement(int &)
+ ?GetStereoMode@RRadioSession@@QBEHAAH@Z @ 23 NONAME ; int RRadioSession::GetStereoMode(int &) const
+ ?CancelRdsStationSeek@RRadioSession@@QAEXXZ @ 24 NONAME ; void RRadioSession::CancelRdsStationSeek(void)
+ ?ForceMonoReception@RRadioSession@@QAEHH@Z @ 25 NONAME ; int RRadioSession::ForceMonoReception(int)
+ ?CustomCommandSync@RRadioSession@@UAEHABV?$TPckgBuf@VTMMFMessageDestination@@@@HABVTDesC8@@1@Z @ 26 NONAME ; int RRadioSession::CustomCommandSync(class TPckgBuf<class TMMFMessageDestination> const &, int, class TDesC8 const &, class TDesC8 const &)
+ ?GetRdsSignalStatus@RRadioSession@@QBEHAAH@Z @ 27 NONAME ; int RRadioSession::GetRdsSignalStatus(int &) const
+ ?GetFrequency@RRadioSession@@QBEHAAH@Z @ 28 NONAME ; int RRadioSession::GetFrequency(int &) const
+ ?RequestTunerControl@RRadioSession@@QAEXW4TRsTuner@@@Z @ 29 NONAME ; void RRadioSession::RequestTunerControl(enum TRsTuner)
+ ?GetPSByTA@RRadioSession@@QAEXXZ @ 30 NONAME ; void RRadioSession::GetPSByTA(void)
+ ?GetRadioTextPlus@RRadioSession@@QAEHW4TRsRdsRTplusClass@@AAV?$TBuf16@$0EA@@@@Z @ 31 NONAME ; int RRadioSession::GetRadioTextPlus(enum TRsRdsRTplusClass, class TBuf16<64> &)
+ ?StationSeekByPTY@RRadioSession@@QAEXHH@Z @ 32 NONAME ; void RRadioSession::StationSeekByPTY(int, int)
+ ?CancelSetFrequencyRange@RRadioSession@@QAEXXZ @ 33 NONAME ; void RRadioSession::CancelSetFrequencyRange(void)
+ ?GetSquelch@RRadioSession@@QBEHAAH@Z @ 34 NONAME ; int RRadioSession::GetSquelch(int &) const
+ ?Play@RRadioSession@@QAEXXZ @ 35 NONAME ; void RRadioSession::Play(void)
+ ?StationSeek@RRadioSession@@QAEXH@Z @ 36 NONAME ; void RRadioSession::StationSeek(int)
+ ?GetVolume@RRadioSession@@QBEHAAH@Z @ 37 NONAME ; int RRadioSession::GetVolume(int &) const
+ ?PlayerState@RRadioSession@@QBEHAAW4TRsPlayerState@@@Z @ 38 NONAME ; int RRadioSession::PlayerState(enum TRsPlayerState &) const
+ ?CancelNotifyRdsDataChange@RRadioSession@@QAEXXZ @ 39 NONAME ; void RRadioSession::CancelNotifyRdsDataChange(void)
+ ?SetBalance@RRadioSession@@QAEHHH@Z @ 40 NONAME ; int RRadioSession::SetBalance(int, int)
+ ?SetVolumeRamp@RRadioSession@@QAEHABVTTimeIntervalMicroSeconds@@@Z @ 41 NONAME ; int RRadioSession::SetVolumeRamp(class TTimeIntervalMicroSeconds const &)
+ ?GetRdsCapabilities@RRadioSession@@QBEHAAVTRsRdsCapabilities@@@Z @ 42 NONAME ; int RRadioSession::GetRdsCapabilities(class TRsRdsCapabilities &) const
+ ?GetProgrammeService@RRadioSession@@QAEHAAV?$TBuf16@$07@@@Z @ 43 NONAME ; int RRadioSession::GetProgrammeService(class TBuf16<8> &)
+ ?GetSignalStrength@RRadioSession@@QBEHAAH@Z @ 44 NONAME ; int RRadioSession::GetSignalStrength(int &) const
+ ?GetFreqByPTY@RRadioSession@@QAEXH@Z @ 45 NONAME ; void RRadioSession::GetFreqByPTY(int)
+ ?CancelAFSearch@RRadioSession@@QAEXXZ @ 46 NONAME ; void RRadioSession::CancelAFSearch(void)
+ ?GetBalance@RRadioSession@@QBEHAAH0@Z @ 47 NONAME ; int RRadioSession::GetBalance(int &, int &) const
+ ?GetRadioText@RRadioSession@@QAEHAAV?$TBuf16@$0EA@@@@Z @ 48 NONAME ; int RRadioSession::GetRadioText(class TBuf16<64> &)
+ ?Stop@RRadioSession@@QAEXH@Z @ 49 NONAME ; void RRadioSession::Stop(int)
+ ?Close@RRadioSession@@QAEXXZ @ 50 NONAME ; void RRadioSession::Close(void)
+ ?CancelStationSeek@RRadioSession@@QAEXXZ @ 51 NONAME ; void RRadioSession::CancelStationSeek(void)
+ ?EnableTunerInOfflineMode@RRadioSession@@QAEHH@Z @ 52 NONAME ; int RRadioSession::EnableTunerInOfflineMode(int)
+ ?CancelSetFrequency@RRadioSession@@QAEXXZ @ 53 NONAME ; void RRadioSession::CancelSetFrequency(void)
+ ?GetPSByPTY@RRadioSession@@QAEXH@Z @ 54 NONAME ; void RRadioSession::GetPSByPTY(int)
+ ?GetProgrammeIdentification@RRadioSession@@QAEHAAH@Z @ 55 NONAME ; int RRadioSession::GetProgrammeIdentification(int &)
+ ?CustomCommandSync@RRadioSession@@UAEHABV?$TPckgBuf@VTMMFMessageDestination@@@@HABVTDesC8@@1AAVTDes8@@@Z @ 56 NONAME ; int RRadioSession::CustomCommandSync(class TPckgBuf<class TMMFMessageDestination> const &, int, class TDesC8 const &, class TDesC8 const &, class TDes8 &)
+ ?CancelGetPSByPTY@RRadioSession@@QAEXXZ @ 57 NONAME ; void RRadioSession::CancelGetPSByPTY(void)
+ ?Mute@RRadioSession@@QAEHH@Z @ 58 NONAME ; int RRadioSession::Mute(int)
+ ?GetMaxVolume@RRadioSession@@QBEHAAH@Z @ 59 NONAME ; int RRadioSession::GetMaxVolume(int &) const
+ ?CancelNotifyRadioTextPlusChange@RRadioSession@@QAEXXZ @ 60 NONAME ; void RRadioSession::CancelNotifyRadioTextPlusChange(void)
+ ?GetFreqByTA@RRadioSession@@QAEXXZ @ 61 NONAME ; void RRadioSession::GetFreqByTA(void)
+ ?Version@RRadioSession@@QBE?AVTVersion@@XZ @ 62 NONAME ; class TVersion RRadioSession::Version(void) const
+ ??0RRadioSession@@QAE@XZ @ 63 NONAME ; RRadioSession::RRadioSession(void)
+ ?SetFrequency@RRadioSession@@QAEXH@Z @ 64 NONAME ; void RRadioSession::SetFrequency(int)
+ ?SetAutomaticTrafficAnnouncement@RRadioSession@@QAEHH@Z @ 65 NONAME ; int RRadioSession::SetAutomaticTrafficAnnouncement(int)
+ ?GetTunerCapabilities@RRadioSession@@QBEHAAVTRsTunerCapabilities@@@Z @ 66 NONAME ; int RRadioSession::GetTunerCapabilities(class TRsTunerCapabilities &) const
+ ?SetFrequencyRange@RRadioSession@@QAEXW4TRsFrequencyRange@@@Z @ 67 NONAME ; void RRadioSession::SetFrequencyRange(enum TRsFrequencyRange)
+ ?GetClockTime@RRadioSession@@QAEHAAVTDateTime@@@Z @ 68 NONAME ; int RRadioSession::GetClockTime(class TDateTime &)
+ ?NewL@RRadioSession@@SAPAV1@XZ @ 69 NONAME ; class RRadioSession * RRadioSession::NewL(void)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/radioserver/Session/stub/eabi/RadioSession_Stubu.def Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,78 @@
+EXPORTS
+ _ZN13RRadioSession10GetPSByPTYEi @ 1 NONAME
+ _ZN13RRadioSession10SetBalanceEii @ 2 NONAME
+ _ZN13RRadioSession10SetSquelchEi @ 3 NONAME
+ _ZN13RRadioSession11GetFreqByTAEv @ 4 NONAME
+ _ZN13RRadioSession11StationSeekEi @ 5 NONAME
+ _ZN13RRadioSession12GetClockTimeER9TDateTime @ 6 NONAME
+ _ZN13RRadioSession12GetFreqByPTYEi @ 7 NONAME
+ _ZN13RRadioSession12GetRadioTextER6TBuf16ILi64EE @ 8 NONAME
+ _ZN13RRadioSession12SetFrequencyEi @ 9 NONAME
+ _ZN13RRadioSession13SetVolumeRampERK25TTimeIntervalMicroSeconds @ 10 NONAME
+ _ZN13RRadioSession14CancelAFSearchEv @ 11 NONAME
+ _ZN13RRadioSession15CancelGetPSByTAEv @ 12 NONAME
+ _ZN13RRadioSession15StationSeekByTAEi @ 13 NONAME
+ _ZN13RRadioSession15StationSeekByTPEi @ 14 NONAME
+ _ZN13RRadioSession16CancelGetPSByPTYEv @ 15 NONAME
+ _ZN13RRadioSession16GetProgrammeTypeERi @ 16 NONAME
+ _ZN13RRadioSession16GetRadioTextPlusE17TRsRdsRTplusClassR6TBuf16ILi64EE @ 17 NONAME
+ _ZN13RRadioSession16StationSeekByPTYEii @ 18 NONAME
+ _ZN13RRadioSession17CancelGetFreqByTAEv @ 19 NONAME
+ _ZN13RRadioSession17CancelStationSeekEv @ 20 NONAME
+ _ZN13RRadioSession17CustomCommandSyncERK8TPckgBufI22TMMFMessageDestinationEiRK6TDesC8S7_ @ 21 NONAME
+ _ZN13RRadioSession17CustomCommandSyncERK8TPckgBufI22TMMFMessageDestinationEiRK6TDesC8S7_R5TDes8 @ 22 NONAME
+ _ZN13RRadioSession17SetFrequencyRangeE17TRsFrequencyRange @ 23 NONAME
+ _ZN13RRadioSession18CancelGetFreqByPTYEv @ 24 NONAME
+ _ZN13RRadioSession18CancelSetFrequencyEv @ 25 NONAME
+ _ZN13RRadioSession18CustomCommandAsyncERK8TPckgBufI22TMMFMessageDestinationEiRK6TDesC8S7_R14TRequestStatus @ 26 NONAME
+ _ZN13RRadioSession18CustomCommandAsyncERK8TPckgBufI22TMMFMessageDestinationEiRK6TDesC8S7_R5TDes8R14TRequestStatus @ 27 NONAME
+ _ZN13RRadioSession18ForceMonoReceptionEi @ 28 NONAME
+ _ZN13RRadioSession19GetProgrammeServiceER6TBuf16ILi8EE @ 29 NONAME
+ _ZN13RRadioSession19NotifyRdsDataChangeE10TRsRdsData @ 30 NONAME
+ _ZN13RRadioSession19RequestTunerControlE8TRsTuner @ 31 NONAME
+ _ZN13RRadioSession20CancelRdsStationSeekEv @ 32 NONAME
+ _ZN13RRadioSession21GetAutomaticSwitchingERi @ 33 NONAME
+ _ZN13RRadioSession21SetAutomaticSwitchingEi @ 34 NONAME
+ _ZN13RRadioSession23CancelSetFrequencyRangeEv @ 35 NONAME
+ _ZN13RRadioSession24EnableTunerInOfflineModeEi @ 36 NONAME
+ _ZN13RRadioSession25CancelNotifyRdsDataChangeEv @ 37 NONAME
+ _ZN13RRadioSession25GetTrafficProgrammeStatusERi @ 38 NONAME
+ _ZN13RRadioSession25NotifyRadioTextPlusChangeER6RArrayIiE @ 39 NONAME
+ _ZN13RRadioSession26GetProgrammeIdentificationERi @ 40 NONAME
+ _ZN13RRadioSession28GetTrafficAnnouncementStatusERi @ 41 NONAME
+ _ZN13RRadioSession31CancelNotifyRadioTextPlusChangeEv @ 42 NONAME
+ _ZN13RRadioSession31GetAutomaticTrafficAnnouncementERi @ 43 NONAME
+ _ZN13RRadioSession31SetAutomaticTrafficAnnouncementEi @ 44 NONAME
+ _ZN13RRadioSession4MuteEi @ 45 NONAME
+ _ZN13RRadioSession4PlayEv @ 46 NONAME
+ _ZN13RRadioSession4StopEi @ 47 NONAME
+ _ZN13RRadioSession5CloseEv @ 48 NONAME
+ _ZN13RRadioSession7ConnectER14MRadioObserveri @ 49 NONAME
+ _ZN13RRadioSession9GetPSByTAEv @ 50 NONAME
+ _ZN13RRadioSession9SetVolumeEi @ 51 NONAME
+ _ZN13RRadioSessionC1Ev @ 52 NONAME
+ _ZN13RRadioSessionC2Ev @ 53 NONAME
+ _ZNK13RRadioSession10GetBalanceERiS0_ @ 54 NONAME
+ _ZNK13RRadioSession10GetSquelchERi @ 55 NONAME
+ _ZNK13RRadioSession11PlayerStateER14TRsPlayerState @ 56 NONAME
+ _ZNK13RRadioSession12GetFrequencyERi @ 57 NONAME
+ _ZNK13RRadioSession12GetMaxVolumeERi @ 58 NONAME
+ _ZNK13RRadioSession13GetMuteStatusERi @ 59 NONAME
+ _ZNK13RRadioSession13GetStereoModeERi @ 60 NONAME
+ _ZNK13RRadioSession17GetFrequencyRangeER17TRsFrequencyRangeRiS2_ @ 61 NONAME
+ _ZNK13RRadioSession17GetSignalStrengthERi @ 62 NONAME
+ _ZNK13RRadioSession18GetRdsCapabilitiesER18TRsRdsCapabilities @ 63 NONAME
+ _ZNK13RRadioSession18GetRdsSignalStatusERi @ 64 NONAME
+ _ZNK13RRadioSession20GetMaxSignalStrengthERi @ 65 NONAME
+ _ZNK13RRadioSession20GetTunerCapabilitiesER20TRsTunerCapabilities @ 66 NONAME
+ _ZNK13RRadioSession21GetForceMonoReceptionERi @ 67 NONAME
+ _ZNK13RRadioSession7VersionEv @ 68 NONAME
+ _ZNK13RRadioSession9GetVolumeERi @ 69 NONAME
+ _ZTI13CRadioRequest @ 70 NONAME
+ _ZTI13RRadioSession @ 71 NONAME
+ _ZTI18CRadioEventHandler @ 72 NONAME
+ _ZTV13CRadioRequest @ 73 NONAME
+ _ZTV13RRadioSession @ 74 NONAME
+ _ZTV18CRadioEventHandler @ 75 NONAME
+ _ZN13RRadioSession4NewLEv @ 76 NONAME
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/radioserver/Session/stub/group/RadioSession_Stub.mmp Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Project file for RadioSession Stub for Radio unit tests
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+TARGET RadioSession_Stub.dll
+CAPABILITY CAP_CLIENT_DLL
+TARGETTYPE DLL
+UID 0x1000008d 0x01000031
+VENDORID VID_DEFAULT
+VERSION 10.1
+
+SOURCEPATH ../../Src
+SOURCE RadioRequest.cpp
+SOURCE RadioEventHandler.cpp
+
+SOURCEPATH ../src
+SOURCE StubRadioSession.cpp
+
+USERINCLUDE ../Src
+USERINCLUDE ../../Src
+USERINCLUDE ../../../Inc
+USERINCLUDE ../../../../inc
+USERINCLUDE /sf/mw/mmmw/mmserv/radioutility/radio_utility/stub/src
+USERINCLUDE /sf/mw/mmmw/mmserv/radioutility/radio_utility/stub/src
+USERINCLUDE /sf/mw/mmmw/mmserv/radioutility/radio_utility/src
+USERINCLUDE /sf/mw/mmmw/mmserv/radioutility/inc
+USERINCLUDE /sf/mw/mmmw/mmserv/inc
+USERINCLUDE /sf/mw/mmmw/inc
+USERINCLUDE /sf/app/radio/radioengine/utils/inc
+
+MW_LAYER_SYSTEMINCLUDE
+
+LIBRARY euser.lib
+LIBRARY MmfControllerFramework.lib
+LIBRARY flogger.lib
+MACRO STUB_CONSTELLATION
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/radioserver/Session/stub/group/bld.inf Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Project build file for RadioSession's stub
+*
+*/
+
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+../src/RadioStubManager.h /epoc32/include/RadioStubManager.h
+
+
+PRJ_MMPFILES
+RadioSession_Stub.mmp
+
+
+// End of File
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/radioserver/Session/stub/src/RadioStubManager.h Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,263 @@
+/*
+* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef RADIOSTUBMANAGER_H_
+#define RADIOSTUBMANAGER_H_
+#include <e32std.h>
+#include <e32base.h>
+
+#include <RadioFmTunerUtility.h>
+#include <RadioPlayerUtility.h>
+#include <RadioRdsUtility.h>
+#include <remconcallhandlingtargetobserver.h>
+#include <remconcoreapitargetobserver.h>
+
+#include "RadioServerData.h"
+#include "mradioheadseteventobserver.h"
+#include "RadioStubManager.h"
+
+_LIT(KRadioStubManagerLocalChunkName, "RadioStubManagerLocalChunkName");
+
+struct TStubError
+ {
+
+ void SetStubError( TFmRadioTunerError aError, TUint aFailCounter = 1, TBool aFailForEver = EFalse )
+ {
+ iError = aError;
+ iFailCounter = aFailCounter;
+ iFailForEver = aFailForEver; };
+ TInt Error()
+ {
+ TInt aError (iError);
+ if (iFailCounter)
+ {
+ --iFailCounter;
+ }
+ else if (iFailForEver)
+ {
+ }
+ else
+ {
+ aError = KErrNone;
+ }
+ return aError;
+ }
+ TFmRadioTunerError iError;
+ TUint iFailCounter;
+ TBool iFailForEver;
+ };
+
+struct TLeaveError
+ {
+ void Set( TInt aError = KErrGeneral );
+ TInt iError;
+ };
+
+struct SRadioStubManager
+ {
+public:
+ void FillZ()
+ {
+ Mem::FillZ( this, sizeof( SRadioStubManager ) );
+ }
+public:
+ enum TCenRepDbs
+ {
+ // Redefine CenRep databases for test purposes.
+ // Original constant names are got by eliminating leading "ESub_"-prefix.
+ EStub_KPSUidCtsyCallInformation = 0x01001001,
+ EStub_KUidSystemCategory = 0x01001002,
+ EStub_KPSUidVoiceUiAccMonitor = 0x01001003,
+ EStub_KPSUidMMFAudioServer = 0x01001004,
+ EStub_KRadioPSUid = 0x01001005,
+ EStub_KRadioServerPropertyCategory = 0x01001006
+ };
+
+ struct TRemConTargetData
+ {
+ TLeaveError iLeaveNewL;
+ TLeaveError iLeaveConstructL;
+
+
+ MRemConCoreApiTargetObserver* iRemConCoreApiTargetObserver;
+ MRemConCallHandlingTargetObserver* iRemConCallHandlingTargetObserver;
+ } mutable iRemConTarget;
+
+ struct TAccessoryObserverData
+ {
+ TLeaveError iLeaveNewL;
+ TLeaveError iLeaveIsHeadsetConnectedL;
+ TLeaveError iLeaveConstructL;
+
+ TBool iHeadsetConnected;
+ MRadioHeadsetEventObserver* iObserver;
+
+
+ } mutable iAccessoryObserver;
+
+ struct TFmTunerStubData
+ {
+ TRsTunerCapabilities iCaps;
+ TStubError iGetCapabilitiesError;
+
+
+ TBool iTunerInOfflineMode;
+ TStubError iEnableTunerInOfflineModeError;
+
+
+ TRsFrequencyRange iRange;
+ TRsFrequencyRange iPreviousRange;
+ TInt iMinFreq;
+ TInt iMaxFreq;
+ TStubError iGetFrequencyRangeError;
+ TStubError iSetFrequencyRangeError;
+
+ TInt iFrequency;
+ TInt iPreviousFrequency;
+ TStubError iGetFrequencyError;
+ TStubError iSetFrequencyError;
+
+ struct TScanStations
+ {
+ TInt iCount;
+ TInt iMinFreq;
+ TInt iFrequencyStepSize;
+ } mutable iScanStations;
+
+ TBool iStationSeekUpwards;
+
+ TInt iSignalStrength;
+ TStubError iGetSignalStrengthError;
+
+ TInt iMaxSignalStrength;
+ TStubError iGetMaxSignalStrengthError;
+
+ TBool iStereoMode;
+ TStubError iGetStereoModeError;
+
+ TBool iForcedMono;
+ TStubError iGetForcedMonoReceptionError;
+ TStubError iForcedMonoReceptionError;
+
+ TBool iSquelch;
+ TStubError iSetSquelchError;
+ TStubError iGetSquelchError;
+ } mutable iTuner;
+
+ struct TPlayerStubData
+ {
+ TLeaveError iLeaveNewL;
+ TLeaveError iLeaveErrorForConstructL;
+ MRadioPlayerObserver* iRadioPlayerUtilityClient;
+
+ TRsPlayerState iPlayerState;
+
+ TBool iMuteStatus;
+ TStubError iMuteError;
+
+ TInt iVolume;
+ TStubError iSetVolumeError;
+ TStubError iGetVolumeError;
+
+ TTimeIntervalMicroSeconds iRampInterval;
+ TStubError iSetVolumeRampError;
+
+ TInt iMaxVolume;
+ TStubError iGetMaxVolumeError;
+
+ TInt iLeftPercentage;
+ TInt iRightPercentage;
+ TStubError iSetBalanceError;
+ TStubError iGetBalanceError;
+ } mutable iPlayer;
+
+ struct TRdsStubData
+ {
+ TLeaveError iLeaveNewL;
+ TLeaveError iLeaveErrorForConstructL;
+ MRadioRdsObserver* iRadioRdsUtilityClient;
+ TRsRdsCapabilities iCaps;
+ TStubError iGetCapabilitiesError;
+
+ TBool iRdsSignal;
+ TStubError iGetRdsSignalStatusError;
+
+ TStubError iNotifyRdsDataChangeError;
+
+ TBool iAutomaticSwitching;
+ TStubError iSetAutomaticSwitchingError;
+ TStubError iGetAutomaticSwitchingError;
+
+ TStubError iStationSeekByPTYError;
+ TStubError iStationSeekByTAError;
+ TStubError iStationSeekByTPError;
+ TInt iFrequency;
+ TStubError iGetFreqByPTYError;
+ TStubError iGetFreqByTAError;
+ TStubError iGetPSByPTYError;
+ TStubError iGetPSByTAError;
+
+ RArray<TRdsPSName> iPsList;
+ RArray<TInt> iFreqList;
+
+ TInt iPi;
+ TStubError iGetProgrammeIdentificationError;
+
+ TRdsProgrammeType iPty;
+ TStubError iGetProgrammeTypeError;
+
+ TRdsPSName iPs;
+ TStubError iGetProgrammeServiceError;
+
+ // Radio Text
+ TRdsRTplusClass iRtPlusClass;
+ TRdsRadioText iRtPlusData;
+ TStubError iGetRadioTextPlusError;
+ TRsRdsRadioText iRt;
+ TStubError iGetRadioTextError;
+
+ // Automatic traffic announcement
+ TBool iAuto;
+ TStubError iGetTrafficAnnouncementStatusError;
+ TStubError iSetTrafficAnnouncementStatusError;
+
+ TBool iTaStatus;
+ TStubError iGetAutomaticTrafficAnnouncementError;
+ TStubError iSetAutomaticTrafficAnnouncementError;
+
+ TDateTime iCt;
+ TStubError iGetClockTimeError;
+
+ TBool iTpStatus;
+ TStubError iGetTrafficProgrammeStatusError;
+ } mutable iRds;
+
+ struct TMonitorStubData
+ {
+ TInt iNone;
+ } mutable iMonitor;
+ };
+
+const TUid KStub_KRadioServerPropertyCategory = {SRadioStubManager::EStub_KRadioServerPropertyCategory};
+const TUid KStub_KUidSystemCategory = {SRadioStubManager::EStub_KUidSystemCategory};
+const TUid KStub_KPSUidCtsyCallInformation = {SRadioStubManager::EStub_KPSUidCtsyCallInformation};
+const TUid KStub_KPSUidVoiceUiAccMonitor = {SRadioStubManager::EStub_KPSUidVoiceUiAccMonitor};
+const TUid KStub_KPSUidMMFAudioServer = {SRadioStubManager::EStub_KPSUidMMFAudioServer};
+const TUid KStub_KRadioPSUid = {SRadioStubManager::EStub_KRadioPSUid};
+const TUid KStub_KRadioCRUid = {0x101FF976}; // tried with this {SRadioStubManager::EStub_KRadioPSUid} but failed
+
+#endif /* RADIOSTUBMANAGER_H_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/radioserver/Session/stub/src/StubRadioSession.cpp Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,1773 @@
+/*
+* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: This class is the main interface to the RadioServer. It implements
+* the client-side session.
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <e32math.h>
+#include "StubRadioSession.h"
+#include "RadioClientServer.h"
+#include "RadioRequest.h"
+#include "RadioEventHandler.h"
+#include "RadioDebug.h"
+#include "trace.h"
+
+// CONSTANTS
+// Index to list of asynchronous requests that generates response to MRadioObserver.
+const TInt KReqInternal = 0;
+const TInt KReqRequestTunerControl = 1;
+const TInt KReqSetFrequencyRange = 2;
+const TInt KReqSetFrequency = 3;
+const TInt KReqStationSeek = 4;
+const TInt KReqPlay = 5;
+const TInt KReqStationSeekByPTY = 6;
+const TInt KReqStationSeekByTA = 7;
+const TInt KReqStationSeekByTP = 8;
+
+// Max number of retries to start the server
+const TInt KRadioStartRetry = 2;
+// Minimum of one for each asynchronous message + one to allow cancel
+const TInt KRadioMessageSlots = 11;
+
+#define TUNER iRadioStubManager->iTuner
+#define PLAYER iRadioStubManager->iPlayer
+#define RDS iRadioStubManager->iRds
+
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// StartServer
+// Static function to start the server process thread.
+// Start the server process/thread which lives in an EPOCEXE object.
+// Returns: TInt: KErrNone (0) if no error
+// -----------------------------------------------------------------------------
+//
+static TInt StartServer()
+ {
+ FUNC_LOG;
+
+ const TUidType serverUid(KNullUid, KNullUid, KRadioServerUid3);
+
+ // We just create a new server process. Simultaneous launching of two such
+ // processes should be detected when the second one attempts to create
+ // the server object, failing with KErrAlreadyExists.
+ RProcess server;
+ TInt r = server.Create(KRadioServerImg, KNullDesC, serverUid);
+
+ if ( r != KErrNone )
+ {
+ INFO_1("server.Create() failed [%d]", r);
+ return r;
+ }
+ TRequestStatus stat;
+ server.Rendezvous(stat);
+ if ( stat != KRequestPending )
+ {
+ server.Kill(0); // abort startup
+ }
+ else
+ {
+ server.Resume(); // logon OK - start the server
+ }
+ User::WaitForRequest(stat); // wait for start or death
+ // we can't use the 'exit reason' if the server panicked as this
+ // is the panic 'reason' and may be '0' which cannot be distinguished
+ // from KErrNone
+ r = (server.ExitType() == EExitPanic) ? KErrGeneral : stat.Int();
+ server.Close();
+ return r;
+ }
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// RRadioSession::NewL
+// Two-phased constructor except no need for ConstrucL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C RRadioSession* RRadioSession::NewL()
+ {
+ FUNC_LOG;
+ RRadioSession* self = new (ELeave) RRadioSession();
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::RRadioSession
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C RRadioSession::RRadioSession()
+ : iConnected(EFalse),
+ iDestinationPckg(TMMFMessageDestination(KRadioServerInterfaceUid, KRadioServerObjectHandle)),
+ iObserver(NULL),
+ iPrimaryClient(EFalse),
+ iRdsNotify(EFalse)
+ {
+ FUNC_LOG;
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::Connect
+// Create a client-side session. Start the server if not started already.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::Connect(
+ MRadioObserver& aObserver,
+ TBool aPrimaryClient )
+ {
+ FUNC_LOG;
+ INFO_1("Size of RRadioSession: %i", sizeof(RRadioSession) );
+ // check if already connected
+ if ( iConnected )
+ {
+ INFO("already connected");
+ return KErrAlreadyExists;
+ }
+
+ TInt retry = KRadioStartRetry;
+ TInt err = KErrGeneral;
+ TInt numMessageSlots = KRadioMessageSlots;
+ for (;;)
+ {
+ // Try to create a new session with the server
+ err = CreateSession(KRadioServerName, Version(), numMessageSlots);
+ if ( (err != KErrNotFound) && (err != KErrServerTerminated) )
+ {
+ break; // Connected to existing server - ok
+ }
+ if ( --retry == 0 )
+ {
+ break; // Failed.
+ }
+ // Server not running, try to start it.
+ err = StartServer();
+ if ( (err != KErrNone) && (err != KErrAlreadyExists) )
+ {
+ break; // Server not launched - propagate error
+ }
+ }
+
+ if ( err != KErrNone )
+ {
+ INFO_1("Unable to start server [%d]", err);
+ return err;
+ }
+ // Dooing some temporary manipulation for heap
+ User::Check();
+ User::CompressAllHeaps();
+ CRadioRequest* req( NULL );
+ TRAP(err, req = CRadioRequest::NewLC(*this, aObserver, ERadioServNone); CleanupStack::Pop( req ) );
+ iExtraRequestForBugHunting = req;
+ User::Check();
+ User::CompressAllHeaps();
+ //delete iExtraRequestForBugHunting;
+ //iExtraRequestForBugHunting = NULL;
+
+ // Create active object request handlers and add it to scheduler
+ TRAP(err, StartRequestHandlersL(aObserver));
+ if ( err == KErrNone )
+ {
+ // Create active object event handlers and add it to scheduler
+ TRAP(err, StartEventHandlersL(aObserver));
+ if ( err == KErrNone )
+ {
+ iConnected = ETrue;
+ iObserver = &aObserver;
+ if ( aPrimaryClient )
+ {
+ iPrimaryClient = ETrue;
+ err = SendReceive(ERadioServAddPrimaryClient, TIpcArgs(&iDestinationPckg));
+ }
+ }
+ else
+ {
+ iRequests.ResetAndDestroy();
+ iEventHandlers.ResetAndDestroy();
+ }
+ }
+ else
+ {
+ iRequests.ResetAndDestroy();
+ }
+ // Open chunk for test configuration/control data
+ // Open chunk for test configuration/control data
+ User::Check();
+ User::CompressAllHeaps();
+ err = iRadioStubManagerChunk.OpenGlobal(
+ KRadioStubManagerLocalChunkName,
+ EFalse, // == Read | Write
+ EOwnerThread );
+ if (err)
+ {
+ goto exitAndReturn;
+ }
+ User::Check();
+ User::CompressAllHeaps();
+ if ( sizeof(SRadioStubManager) > iRadioStubManagerChunk.MaxSize() )
+ {
+ err = KErrTooBig;
+ goto exitAndReturn;
+ }
+ TUint8* basePtr = iRadioStubManagerChunk.Base();
+ User::LeaveIfNull( basePtr );
+ if (!basePtr)
+ {
+ err = KErrGeneral;
+ goto exitAndReturn;
+ }
+ User::Check();
+ User::CompressAllHeaps();
+ iRadioStubManager = (SRadioStubManager*)basePtr;
+
+exitAndReturn:
+ User::Check();
+ User::CompressAllHeaps();
+ INFO_1("exit err=[%d]", err);
+ return err;
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::Version
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TVersion RRadioSession::Version() const
+ {
+ return(TVersion(KRadioServerVersionMajor, KRadioServerVersionMinor, KRadioServerVersionBuild));
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::Close
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::Close()
+ {
+ FUNC_LOG;
+
+ //delete iExtraRequestForBugHunting;
+ iEventHandlers.ResetAndDestroy();
+ iEventHandlers.Close();
+
+ iRdsEventHandlers.ResetAndDestroy();
+ iRdsEventHandlers.Close();
+
+ for ( TInt i = (iRequests.Count() - 1) ; i >= 0; i = (iRequests.Count()- 1) )
+ {
+ INFO_2("iRequests[i] pointer: 0x%x, no: %i", *&iRequests[i], i );
+ CRadioRequest* req = *&iRequests[i];
+ iRequests.Remove(i);
+ delete req;
+ }
+ //iRequests.ResetAndDestroy();
+ iRequests.Close();
+
+ if ( iConnected )
+ {
+ iConnected = EFalse;
+ if ( iPrimaryClient )
+ {
+ SendReceive(ERadioServRemovePrimaryClient, TIpcArgs(&iDestinationPckg));
+ }
+ RSessionBase::Close();
+ }
+ // Dooing some temporary manipulation for heap
+ //User::Check();
+ //User::CompressAllHeaps();
+ delete iExtraRequestForBugHunting;
+ }
+
+//********** TunerUtility control begins
+
+// -----------------------------------------------------------------------------
+// RRadioSession::RequestTunerControl
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::RequestTunerControl(
+ TRsTuner /*aTuner*/ )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ if ( !iRequests[KReqRequestTunerControl]->IsActive() )
+ {
+ iRequests[KReqRequestTunerControl]->CompleteRequest(ERadioServRequestTunerControl, KErrNone);
+ }
+ }
+ else
+ {
+ iRequests[KReqInternal]->CompleteRequest(ERadioServRequestTunerControl, KErrDisconnected);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetTunerCapabilities
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetTunerCapabilities(
+ TRsTunerCapabilities& aCaps ) const
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( TUNER.iGetCapabilitiesError.Error() );
+ if ( KErrNone == err )
+ {
+ aCaps.iFrequencyRange = TUNER.iCaps.iFrequencyRange;
+ aCaps.iCapabilities = TUNER.iCaps.iCapabilities;
+ aCaps.iAdditionalFunctions1 = TUNER.iCaps.iAdditionalFunctions1;
+ aCaps.iAdditionalFunctions2 = TUNER.iCaps.iAdditionalFunctions2;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::EnableTunerInOfflineMode
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::EnableTunerInOfflineMode(
+ TBool aEnable )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( TUNER.iEnableTunerInOfflineModeError.Error() );
+ if ( KErrNone == err )
+ {
+ TUNER.iTunerInOfflineMode = aEnable;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::SetFrequencyRange
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::SetFrequencyRange(
+ TRsFrequencyRange aRange )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( TUNER.iSetFrequencyRangeError.Error() );
+ if ( KErrNone == err )
+ {
+ TUNER.iPreviousRange = TUNER.iRange;
+ TUNER.iRange = aRange;
+ }
+ if ( iRequests[KReqSetFrequencyRange]->IsActive() )
+ {
+ iRequests[KReqSetFrequencyRange]->Cancel();
+ }
+ iRequests[KReqSetFrequencyRange]->CompleteRequest(ERadioServSetFrequencyRange, err);
+ }
+ else
+ {
+ iRequests[KReqInternal]->CompleteRequest(ERadioServSetFrequencyRange, KErrDisconnected);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CancelSetFrequencyRange
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::CancelSetFrequencyRange()
+ {
+ FUNC_LOG;
+ if ( iConnected && iRequests[KReqSetFrequencyRange]->IsActive() )
+ {
+ iRequests[KReqSetFrequencyRange]->Cancel();
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetFrequencyRange
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetFrequencyRange(
+ TRsFrequencyRange& aRange,
+ TInt& aMinFreq,
+ TInt& aMaxFreq) const
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( TUNER.iGetFrequencyRangeError.Error() );
+ if ( KErrNone == err )
+ {
+ aRange = TUNER.iRange;
+ aMinFreq = TUNER.iMinFreq;
+ aMaxFreq = TUNER.iMaxFreq;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::SetFrequency
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::SetFrequency(
+ TInt aFrequency )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TUint err( TUNER.iSetFrequencyError.Error() );
+ if ( KErrNone == err )
+ {
+ TUNER.iPreviousFrequency = TUNER.iFrequency;
+ TUNER.iFrequency = aFrequency;
+ }
+ if ( iRequests[KReqSetFrequency]->IsActive() )
+ {
+ iRequests[KReqSetFrequency]->Cancel();
+ }
+ iRequests[KReqSetFrequency]->CompleteRequest(ERadioServSetFrequency, err);
+ }
+ else
+ {
+ iRequests[KReqInternal]->CompleteRequest(ERadioServSetFrequency, KErrDisconnected);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CancelSetFrequency
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::CancelSetFrequency()
+ {
+ FUNC_LOG;
+ if ( iConnected && iRequests[KReqSetFrequency]->IsActive() )
+ {
+ iRequests[KReqSetFrequency]->Cancel();
+ }
+ TUNER.iFrequency = TUNER.iPreviousFrequency;
+ TUNER.iPreviousFrequency = 0;
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetFrequency
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetFrequency(
+ TInt& aFrequency ) const
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( TUNER.iGetFrequencyError.Error() );
+ if ( KErrNone == err )
+ {
+ aFrequency = TUNER.iFrequency;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::StationSeek
+// -----------------------------------------------------------------------------
+EXPORT_C void RRadioSession::StationSeek(
+ TBool aUpwards )
+ {
+ FUNC_LOG;
+ INFO_1("aUpwards: %D", aUpwards );
+ if ( iConnected )
+ {
+ TUNER.iStationSeekUpwards = aUpwards;
+ if ( iRequests[KReqStationSeek]->IsActive() )
+ {
+ iRequests[KReqStationSeek]->Cancel();
+ }
+ TInt err( KErrNone);
+ if ( KErrNotFound == TUNER.iScanStations.iCount )
+ {
+ err = KErrNotFound;
+ }
+ else if ( TUNER.iScanStations.iCount )
+ {
+ iRequests[KReqStationSeek]->iInt = TUNER.iScanStations.iMinFreq + ( TUNER.iScanStations.iCount * TUNER.iScanStations.iFrequencyStepSize );
+ --TUNER.iScanStations.iCount;
+ if ( 0 == TUNER.iScanStations.iCount )
+ {
+ TUNER.iScanStations.iCount = KErrNotFound;
+ }
+ }
+ else
+ {
+ iRequests[KReqStationSeek]->iInt = TUNER.iFrequency;
+ }
+ iRequests[KReqStationSeek]->CompleteRequest(ERadioServStationSeek, err);
+ }
+ else
+ {
+ iRequests[KReqInternal]->CompleteRequest(ERadioServStationSeek, KErrDisconnected);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CancelStationSeek
+// -----------------------------------------------------------------------------
+EXPORT_C void RRadioSession::CancelStationSeek()
+ {
+ FUNC_LOG;
+ if ( iConnected && iRequests[KReqStationSeek]->IsActive() )
+ {
+ iRequests[KReqStationSeek]->Cancel();
+ }
+ TUNER.iScanStations.iCount = 0;
+ TUNER.iStationSeekUpwards = EFalse;
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetSignalStrength
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::GetSignalStrength(
+ TInt& aSignalStrength ) const
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( TUNER.iGetSignalStrengthError.Error() );
+ if ( KErrNone == err )
+ {
+ aSignalStrength = TUNER.iSignalStrength;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetMaxSignalStrength
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::GetMaxSignalStrength(
+ TInt& aMaxSignalStrength ) const
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( TUNER.iGetMaxSignalStrengthError.Error() );
+ if ( KErrNone == err )
+ {
+ aMaxSignalStrength = TUNER.iMaxSignalStrength;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetStereoMode
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::GetStereoMode(
+ TBool& aStereo ) const
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( TUNER.iGetStereoModeError.Error() );
+ if ( KErrNone == err )
+ {
+ aStereo = TUNER.iStereoMode;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::ForceMonoReception
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::ForceMonoReception(
+ TBool aForcedMono )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( TUNER.iForcedMonoReceptionError.Error() );
+ if ( KErrNone == err )
+ {
+ TUNER.iForcedMono = aForcedMono;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetForceMonoReception
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::GetForceMonoReception(
+ TBool& aForcedMono ) const
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( TUNER.iGetForcedMonoReceptionError.Error() );
+ if ( KErrNone == err )
+ {
+ aForcedMono = TUNER.iForcedMono;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::SetSquelch
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::SetSquelch(
+ TBool aEnabled )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( TUNER.iSetSquelchError.Error() );
+ if ( KErrNone == err )
+ {
+ TUNER.iSquelch = aEnabled;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetSquelch
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::GetSquelch(
+ TBool& aSquelch ) const
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( TUNER.iGetSquelchError.Error() );
+ if ( KErrNone == err )
+ {
+ aSquelch = TUNER.iSquelch;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+//********** PlayerUtility control begins
+
+// -----------------------------------------------------------------------------
+// RRadioSession::PlayerState
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::PlayerState(
+ TRsPlayerState& aState ) const
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ aState = PLAYER.iPlayerState;
+ return KErrNone;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::Play
+// -----------------------------------------------------------------------------
+EXPORT_C void RRadioSession::Play()
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ PLAYER.iPlayerState = ERsPlayerPlaying;
+ if ( iRequests[KReqPlay]->IsActive() )
+ {
+ iRequests[KReqStationSeek]->Cancel();
+ }
+ iRequests[KReqPlay]->CompleteRequest(ERadioServPlay, KErrNone);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::Stop
+// -----------------------------------------------------------------------------
+EXPORT_C void RRadioSession::Stop(
+ TBool aIfOnlyPrimaryClient )
+ {
+ FUNC_LOG;
+ INFO_1("aIfOnlyPrimaryClient: [%d]", aIfOnlyPrimaryClient);
+ if ( iConnected & aIfOnlyPrimaryClient )
+ {
+ PLAYER.iPlayerState = ERsPlayerIdle;
+ RProperty::Set( KRadioServerPropertyCategory, ERadioServPsPlayerState, PLAYER.iPlayerState );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetMaxVolume
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::GetMaxVolume(
+ TInt& aMaxVolume ) const
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( PLAYER.iGetMaxVolumeError.Error() );
+ if ( KErrNone == err )
+ {
+ aMaxVolume = PLAYER.iMaxVolume;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::SetVolume
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::SetVolume(
+ TInt aVolume )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( PLAYER.iSetVolumeError.Error() );
+ if ( KErrNone == err )
+ {
+ PLAYER.iVolume = aVolume;
+ RProperty::Set( KRadioServerPropertyCategory, ERadioServPsVolume, PLAYER.iVolume );
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetVolume
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::GetVolume(
+ TInt& aVolume ) const
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( PLAYER.iGetVolumeError.Error() );
+ if ( KErrNone == err )
+ {
+ aVolume = PLAYER.iVolume;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::SetVolumeRamp
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::SetVolumeRamp(
+ const TTimeIntervalMicroSeconds& aRampInterval )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( PLAYER.iSetVolumeRampError.Error() );
+ if ( KErrNone == err )
+ {
+ PLAYER.iRampInterval = aRampInterval;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::Mute
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::Mute(
+ TBool aMute )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( PLAYER.iMuteError.Error() );
+ if ( KErrNone == err )
+ {
+ PLAYER.iMuteStatus = aMute;
+ RProperty::Set( KRadioServerPropertyCategory, ERadioServPsMuteStatus, PLAYER.iMuteStatus );
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetMuteStatus
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::GetMuteStatus(
+ TBool& aMute ) const
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ aMute = PLAYER.iMuteStatus;
+ return KErrNone;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::SetBalance
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::SetBalance(
+ TInt aLeftPercentage,
+ TInt aRightPercentage )
+ {
+ FUNC_LOG;
+ INFO_2("left=[%d] right=[%d]", aLeftPercentage, aRightPercentage);
+ if ( iConnected )
+ {
+ TInt err( PLAYER.iSetBalanceError.Error() );
+ if ( KErrNone == err )
+ {
+ PLAYER.iLeftPercentage = aLeftPercentage;
+ PLAYER.iRightPercentage = aRightPercentage;
+ //iRadioPlayerUtilityClient.MrpoBalanceChange( STUB.iLeftPercentage, STUB.iRightPercentage );
+ TPckgBuf<TRsSettingsData> balance;
+ balance().iData1 = aLeftPercentage; // Left
+ balance().iData2 = aRightPercentage; // Right
+ RProperty::Set( KRadioServerPropertyCategory, ERadioServPsBalance, balance );
+ }
+ return err;
+
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetBalance
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetBalance(
+ TInt& aLeftPercentage,
+ TInt& aRightPercentage ) const
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( PLAYER.iSetBalanceError.Error() );
+ if ( KErrNone == err )
+ {
+ aLeftPercentage = PLAYER.iLeftPercentage;
+ aRightPercentage = PLAYER.iRightPercentage;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+//********** RDSUtility control begins
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetRdsCapabilities
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetRdsCapabilities(
+ TRsRdsCapabilities& aCaps ) const
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( RDS.iGetCapabilitiesError.Error() );
+ if ( KErrNone == err )
+ {
+ aCaps.iRdsFunctions = RDS.iCaps.iRdsFunctions;
+ aCaps.iAdditionalFunctions1 = RDS.iCaps.iAdditionalFunctions1;
+ aCaps.iAdditionalFunctions2 = RDS.iCaps.iAdditionalFunctions2;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetRdsSignalStatus
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetRdsSignalStatus(
+ TBool& aRdsSignal ) const
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( RDS.iGetRdsSignalStatusError.Error() );
+ if ( KErrNone == err )
+ {
+ aRdsSignal = RDS.iRdsSignal;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::NotifyRdsDataChange
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::NotifyRdsDataChange(
+ TRsRdsData aRdsData )
+ {
+ FUNC_LOG;
+ INFO_1("aRdsData.iRdsFunctions [%d]", aRdsData.iRdsFunctions);
+ if ( !iConnected )
+ {
+ return KErrDisconnected;
+ }
+
+ if ( !iObserver )
+ {
+ return KErrNotReady;
+ }
+
+ TRAPD(err, StartRdsEventHandlersL(aRdsData.iRdsFunctions));
+ if ( err != KErrNone )
+ {
+ INFO_1("err=[%d]", err);
+ return err;
+ }
+ iRdsNotify = ETrue;
+ return err;
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CancelNotifyRdsDataChange
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::CancelNotifyRdsDataChange()
+ {
+ FUNC_LOG;
+ if ( iConnected && iRdsNotify )
+ {
+ iRdsEventHandlers.ResetAndDestroy();
+ iRdsNotify = EFalse;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::NotifyRadioTextPlusChange
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::NotifyRadioTextPlusChange(
+ RArray<TInt>& /*aRtPlusClasses*/ )
+ {
+ FUNC_LOG;
+ return KErrNotSupported;
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CancelNotifyRadioTextPlusChange
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::CancelNotifyRadioTextPlusChange()
+ {
+ FUNC_LOG;
+ // NotifyRadioTextPlusChange is not supported
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::SetAutomaticSwitching
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::SetAutomaticSwitching(
+ TBool aAuto )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( RDS.iSetAutomaticSwitchingError.Error() );
+ if ( KErrNone == err )
+ {
+ RDS.iAutomaticSwitching = aAuto;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetAutomaticSwitching
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetAutomaticSwitching(
+ TBool& aAuto )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( RDS.iGetAutomaticSwitchingError.Error() );
+ if ( KErrNone == err )
+ {
+ aAuto = RDS.iAutomaticSwitching;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CancelAFSearch
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::CancelAFSearch()
+ {
+ FUNC_LOG;
+ }
+
+ // -----------------------------------------------------------------------------
+// RRadioSession::SetAutomaticTrafficAnnouncement
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::SetAutomaticTrafficAnnouncement(
+ TBool /*aAuto*/ )
+ {
+ FUNC_LOG;
+ return KErrNotSupported;
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetAutomaticTrafficAnnouncement
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetAutomaticTrafficAnnouncement(
+ TBool& /*aAuto*/ )
+ {
+ FUNC_LOG;
+ return KErrNotSupported;
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::StationSeekByPTY
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::StationSeekByPTY(
+ TRsRdsProgrammeType aPty,
+ TBool aSeekUp )
+ {
+ FUNC_LOG;
+ INFO_2("pty=[%d], aSeekUp=%d", aPty, aSeekUp);
+ if ( iConnected )
+ {
+ if ( iRequests[KReqStationSeekByPTY]->IsActive() )
+ {
+ iRequests[KReqStationSeekByPTY]->Cancel();
+ }
+ iRequests[KReqStationSeekByPTY]->iInt = RDS.iFrequency;
+ iRequests[KReqInternal]->CompleteRequest(ERadioServStationSeekByPTY, KErrNone);
+ }
+ else
+ {
+ iRequests[KReqInternal]->CompleteRequest(ERadioServStationSeekByPTY, KErrDisconnected);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::StationSeekByTA
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::StationSeekByTA(
+ TBool /*aSeekUp*/ )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ if ( iRequests[KReqStationSeekByTA]->IsActive() )
+ {
+ iRequests[KReqStationSeekByTA]->Cancel();
+ }
+ iRequests[KReqStationSeekByTA]->iInt = RDS.iFrequency;
+ iRequests[KReqInternal]->CompleteRequest(ERadioServStationSeekByTA, KErrNone);
+ }
+ else
+ {
+ iRequests[KReqInternal]->CompleteRequest(ERadioServStationSeekByTA, KErrDisconnected);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::StationSeekByTP
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::StationSeekByTP(
+ TBool /*aSeekUp*/ )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ if ( iRequests[KReqStationSeekByTP]->IsActive() )
+ {
+ iRequests[KReqStationSeekByTP]->Cancel();
+ }
+ iRequests[KReqStationSeekByTP]->iInt = RDS.iFrequency;
+ iRequests[KReqInternal]->CompleteRequest(ERadioServStationSeekByTP, KErrNone);
+ }
+ else
+ {
+ iRequests[KReqInternal]->CompleteRequest(ERadioServStationSeekByTP, KErrDisconnected);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CancelRdsStationSeek
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::CancelRdsStationSeek()
+ {
+ FUNC_LOG;
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetFreqByPTY
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::GetFreqByPTY(
+ TRsRdsProgrammeType /*aPty*/ )
+ {
+ FUNC_LOG;
+ iRequests[KReqInternal]->CompleteRequest(ERadioServGetFreqByPTY, KErrNotSupported);
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CancelGetFreqByPTY
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::CancelGetFreqByPTY()
+ {
+ FUNC_LOG;
+ // GetFreqByPTY is not supported
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetFreqByTA
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::GetFreqByTA()
+ {
+ FUNC_LOG;
+ iRequests[KReqInternal]->CompleteRequest(ERadioServGetFreqByTA, KErrNotSupported);
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CancelGetFreqByTA
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::CancelGetFreqByTA()
+ {
+ FUNC_LOG;
+ // GetFreqByTA is not supported
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetPSByPTY
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::GetPSByPTY(
+ TRsRdsProgrammeType /*aPty*/ )
+ {
+ FUNC_LOG;
+ iRequests[KReqInternal]->CompleteRequest(ERadioServGetPSByPTY, KErrNotSupported);
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CancelGetPSByPTY
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::CancelGetPSByPTY()
+ {
+ FUNC_LOG;
+ // GetPSByPTY is not supported
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetPSByTA
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::GetPSByTA()
+ {
+ FUNC_LOG;
+ iRequests[KReqInternal]->CompleteRequest(ERadioServGetPSByTA, KErrNotSupported);
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CancelGetPSByTA
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void RRadioSession::CancelGetPSByTA()
+ {
+ FUNC_LOG;
+ // GetPSByTA is not supported
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetProgrammeIdentification
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetProgrammeIdentification(
+ TInt& aPi )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( RDS.iGetProgrammeIdentificationError.Error() );
+ if ( KErrNone == err )
+ {
+ aPi = RDS.iPi;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetProgrammeType
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetProgrammeType(
+ TRsRdsProgrammeType& aPty )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( RDS.iGetProgrammeTypeError.Error() );
+ if ( KErrNone == err )
+ {
+ aPty = RDS.iPty;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetProgrammeService
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetProgrammeService(
+ TRsRdsPSName& aPs )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( RDS.iGetProgrammeServiceError.Error() );
+ if ( KErrNone == err )
+ {
+ aPs = RDS.iPs;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetRadioText
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetRadioText(
+ TRsRdsRadioText& aRt )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( RDS.iGetRadioTextError.Error() );
+ if ( KErrNone == err )
+ {
+ aRt = RDS.iRt;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetRadioTextPlus
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetRadioTextPlus(
+ TRsRdsRTplusClass /*aRtPlusClass*/,
+ TRsRdsRadioText& /*aRtPlusData*/ )
+ {
+ FUNC_LOG;
+ return KErrNotSupported;
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetClockTime
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetClockTime(
+ TDateTime& aCt )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( RDS.iGetClockTimeError.Error() );
+ if ( KErrNone == err )
+ {
+ aCt = RDS.iCt;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetTrafficAnnouncementStatus
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetTrafficAnnouncementStatus(
+ TBool& aTaStatus )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( RDS.iGetTrafficAnnouncementStatusError.Error() );
+ if ( KErrNone == err )
+ {
+ aTaStatus = RDS.iTaStatus;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::GetTrafficProgrammeStatus
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt RRadioSession::GetTrafficProgrammeStatus(
+ TBool& aTpStatus )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ TInt err( RDS.iGetTrafficProgrammeStatusError.Error() );
+ if ( KErrNone == err )
+ {
+ aTpStatus = RDS.iTpStatus;
+ }
+ return err;
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CustomCommandSync
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::CustomCommandSync(
+ const TMMFMessageDestinationPckg& aDestination,
+ TInt aFunction,
+ const TDesC8& aDataTo1,
+ const TDesC8& aDataTo2 )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ return SendReceive(aFunction, TIpcArgs(&aDestination, &aDataTo1, &aDataTo2));
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CustomCommandSync
+// -----------------------------------------------------------------------------
+EXPORT_C TInt RRadioSession::CustomCommandSync(
+ const TMMFMessageDestinationPckg& aDestination,
+ TInt aFunction,
+ const TDesC8& aDataTo1,
+ const TDesC8& aDataTo2,
+ TDes8& aDataFrom )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ return SendReceive(aFunction, TIpcArgs(&aDestination, &aDataTo1, &aDataTo2, &aDataFrom));
+ }
+ else
+ {
+ return KErrDisconnected;
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CustomCommandAsync
+// -----------------------------------------------------------------------------
+EXPORT_C void RRadioSession::CustomCommandAsync(
+ const TMMFMessageDestinationPckg& aDestination,
+ TInt aFunction,
+ const TDesC8& aDataTo1,
+ const TDesC8& aDataTo2,
+ TRequestStatus& aStatus )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ SendReceive(aFunction, TIpcArgs(&aDestination, &aDataTo1, &aDataTo2), aStatus);
+ }
+ else
+ {
+ TRequestStatus* stat = &aStatus;
+ User::RequestComplete(stat, KErrDisconnected);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CustomCommandAsync
+// -----------------------------------------------------------------------------
+EXPORT_C void RRadioSession::CustomCommandAsync(
+ const TMMFMessageDestinationPckg& aDestination,
+ TInt aFunction,
+ const TDesC8& aDataTo1,
+ const TDesC8& aDataTo2,
+ TDes8& aDataFrom,
+ TRequestStatus& aStatus )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ SendReceive(aFunction, TIpcArgs(&aDestination, &aDataTo1, &aDataTo2, &aDataFrom), aStatus);
+ }
+ else
+ {
+ TRequestStatus* stat = &aStatus;
+ User::RequestComplete(stat, KErrDisconnected);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::CancelRequest
+// -----------------------------------------------------------------------------
+//
+void RRadioSession::CancelRequest(
+ TInt aRequest )
+ {
+ FUNC_LOG;
+ if ( iConnected )
+ {
+ SendReceive(ERadioServCancel, TIpcArgs(&iDestinationPckg, aRequest));
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::StartRequestHandlersL
+// Create asynchronous request handlers.
+// ** NOTE: The order in which each handler is appended to the iRequests array is critical.
+// Access to each request is done with constants declared at the beginning of this file.
+// -----------------------------------------------------------------------------
+//
+void RRadioSession::StartRequestHandlersL(
+ MRadioObserver& aObserver )
+ {
+ FUNC_LOG;
+
+ CRadioRequest* req = NULL;
+
+ req = CRadioRequest::NewLC(*this, aObserver, ERadioServNone);
+ User::LeaveIfError( iRequests.Append(req) );
+ CleanupStack::Pop( req );
+ INFO_2("CRadioRequest* req: 0x%x, no: %i", req, iRequests.Count() );
+
+ req = CRadioRequest::NewLC(*this, aObserver, ERadioServRequestTunerControl);
+ User::LeaveIfError( iRequests.Append(req) );
+ CleanupStack::Pop( req );
+ INFO_2("CRadioRequest* req: 0x%x, no: %i", req, iRequests.Count() );
+
+ req = CRadioRequest::NewLC(*this, aObserver, ERadioServSetFrequencyRange);
+ User::LeaveIfError( iRequests.Append(req) );
+ CleanupStack::Pop( req );
+ INFO_2("CRadioRequest* req: 0x%x, no: %i", req, iRequests.Count() );
+
+ req = CRadioRequest::NewLC(*this, aObserver, ERadioServSetFrequency);
+ User::LeaveIfError( iRequests.Append(req) );
+ CleanupStack::Pop( req );
+ INFO_2("CRadioRequest* req: 0x%x, no: %i", req, iRequests.Count() );
+
+ req = CRadioRequest::NewLC(*this, aObserver, ERadioServStationSeek);
+ User::LeaveIfError( iRequests.Append(req) );
+ CleanupStack::Pop( req );
+ INFO_2("CRadioRequest* req: 0x%x, no: %i", req, iRequests.Count() );
+
+ req = CRadioRequest::NewLC(*this, aObserver, ERadioServPlay);
+ User::LeaveIfError( iRequests.Append(req) );
+ CleanupStack::Pop( req );
+ INFO_2("CRadioRequest* req: 0x%x, no: %i", req, iRequests.Count() );
+
+ req = CRadioRequest::NewLC(*this, aObserver, ERadioServStationSeekByPTY);
+ User::LeaveIfError( iRequests.Append(req) );
+ CleanupStack::Pop( req );
+ INFO_2("CRadioRequest* req: 0x%x, no: %i", req, iRequests.Count() );
+
+ req = CRadioRequest::NewLC(*this, aObserver, ERadioServStationSeekByTA);
+ User::LeaveIfError( iRequests.Append(req) );
+ CleanupStack::Pop( req );
+ INFO_2("CRadioRequest* req: 0x%x, no: %i", req, iRequests.Count() );
+
+ req = CRadioRequest::NewLC(*this, aObserver, ERadioServStationSeekByTP);
+ User::LeaveIfError( iRequests.Append(req) );
+ CleanupStack::Pop( req );
+ INFO_2("CRadioRequest* req: 0x%x, no: %i", req, iRequests.Count() );
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::StartEventHandlersL
+// -----------------------------------------------------------------------------
+//
+void RRadioSession::StartEventHandlersL(
+ MRadioObserver& aEventObserver )
+ {
+ FUNC_LOG;
+
+ CRadioEventHandler* handler = NULL;
+
+ handler = CRadioEventHandler::NewLC(aEventObserver, *this, ERadioServPsPlayerState);
+ User::LeaveIfError( iEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+
+ handler = CRadioEventHandler::NewLC(aEventObserver, *this, ERadioServPsAntennaStatus);
+ User::LeaveIfError( iEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+
+ handler = CRadioEventHandler::NewLC(aEventObserver, *this, ERadioServPsOfflineMode );
+ User::LeaveIfError( iEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+
+ handler = CRadioEventHandler::NewLC(aEventObserver, *this, ERadioServPsTransmitterStatus );
+ User::LeaveIfError( iEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+
+ handler = CRadioEventHandler::NewLC(aEventObserver, *this, ERadioServPsFrequency);
+ User::LeaveIfError( iEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+
+ handler = CRadioEventHandler::NewLC(aEventObserver, *this, ERadioServPsFrequencyRange);
+ User::LeaveIfError( iEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+
+ handler = CRadioEventHandler::NewLC(aEventObserver, *this, ERadioServPsForceMonoReception);
+ User::LeaveIfError( iEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+
+ handler = CRadioEventHandler::NewLC(aEventObserver, *this, ERadioServPsSquelch);
+ User::LeaveIfError( iEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+
+ handler = CRadioEventHandler::NewLC(aEventObserver, *this, ERadioServPsVolume);
+ User::LeaveIfError( iEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+
+ handler = CRadioEventHandler::NewLC(aEventObserver, *this, ERadioServPsMuteStatus);
+ User::LeaveIfError( iEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+
+ handler = CRadioEventHandler::NewLC(aEventObserver, *this, ERadioServPsBalance);
+ User::LeaveIfError( iEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+ }
+
+// -----------------------------------------------------------------------------
+// RRadioSession::StartRdsEventHandlersL
+// -----------------------------------------------------------------------------
+//
+void RRadioSession::StartRdsEventHandlersL(
+ TUint32 aRdsFunction )
+ {
+ FUNC_LOG;
+
+ iRdsEventHandlers.ResetAndDestroy();
+ CRadioEventHandler* handler = NULL;
+
+ // If RDS notification started always return the latest RdsSignalStatus
+ handler = CRadioEventHandler::NewLC(*iObserver, *this, ERadioServPsRdsSignalStatus);
+ User::LeaveIfError( iRdsEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+
+ handler = CRadioEventHandler::NewLC(*iObserver, *this, ERadioServPsAutoSwitchStatus);
+ User::LeaveIfError( iRdsEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+
+ if (aRdsFunction & TRsRdsData::ERsRdsProgrammeIdentification)
+ {
+ handler = CRadioEventHandler::NewLC(*iObserver, *this, ERadioServPsProgrammeIdentification);
+ User::LeaveIfError( iRdsEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+ }
+
+ if (aRdsFunction & TRsRdsData::ERsRdsProgrammeType)
+ {
+ handler = CRadioEventHandler::NewLC(*iObserver, *this,ERadioServPsProgrammeType );
+ User::LeaveIfError( iRdsEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+ }
+
+ if (aRdsFunction & TRsRdsData::ERsRdsProgrammeService)
+ {
+ handler = CRadioEventHandler::NewLC(*iObserver, *this, ERadioServPsProgrammeService);
+ User::LeaveIfError( iRdsEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+ }
+
+ if(aRdsFunction & TRsRdsData::ERsRdsRadioText)
+ {
+ handler = CRadioEventHandler::NewLC(*iObserver, *this, ERadioServPsRadioText);
+ User::LeaveIfError( iRdsEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+ }
+
+ if(aRdsFunction & TRsRdsData::ERsRdsRadioTextPlus)
+ {
+ handler = CRadioEventHandler::NewLC(*iObserver, *this, ERadioServPsRadioTextPlusObjects);
+ User::LeaveIfError( iRdsEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+ }
+
+ if (aRdsFunction & TRsRdsData::ERsRdsClockTime)
+ {
+ handler = CRadioEventHandler::NewLC(*iObserver, *this, ERadioServPsClockTime);
+ User::LeaveIfError( iRdsEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+ }
+
+ if (aRdsFunction & TRsRdsData::ERsRdsTrafficAnnouncement)
+ {
+ handler = CRadioEventHandler::NewLC(*iObserver, *this, ERadioServPsTrafficAnnouncementStatus);
+ User::LeaveIfError( iRdsEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+ }
+
+ if (aRdsFunction & TRsRdsData::ERsRdsAlternateFrequency)
+ {
+ handler = CRadioEventHandler::NewLC(*iObserver, *this, ERadioServPsAfSearchBegin);
+ User::LeaveIfError( iRdsEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+
+ handler = CRadioEventHandler::NewLC(*iObserver, *this, ERadioServPsAfSearchEnd);
+ User::LeaveIfError( iRdsEventHandlers.Append(handler) );
+ CleanupStack::Pop( handler );
+ }
+ }
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/radioserver/Session/stub/src/StubRadioSession.h Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,1198 @@
+/*
+* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: This class is the main interface to the RadioServer. It implements
+* the client-side session. It also contains M-observer classes that
+* the client must implement to receive completion notification for
+* asynchronous requests and spontaneous event notifications.
+*
+*/
+
+
+
+#ifndef RADIOSESSION_H
+#define RADIOSESSION_H
+
+// INCLUDES
+#include <mmf/common/mmfbase.h>
+#include <mmf/common/mmfcontrollerframework.h>
+#include <MCustomCommand.h>
+
+#include "RadioServerData.h"
+#include "RadioStubManager.h"
+
+// FORWARD DECLARATIONS
+class CRadioRequest;
+class CRadioEventHandler;
+
+// CLASS DECLARATION
+
+/**
+* Defines functions that client must implement in order to receive
+* events from the radio server.
+*
+* @lib RadioSession.lib
+* @since S60 3.0
+*/
+class MRadioObserver
+ {
+public: // New functions
+
+//********** Tuner related
+
+ /**
+ * Completion message for RequestTunerControl request.
+ *
+ * @since S60 3.2
+ * @param aError KErrNone if successful, otherwise one of the system/RadioServer errors.
+ */
+ virtual void RequestTunerControlComplete( TRadioServerError aError ) = 0;
+
+ /**
+ * Completion message for SetFrequencyRange request.
+ *
+ * @since S60 3.2
+ * @param aError KErrNone if successful, otherwise one of the system/RadioServer errors.
+ */
+ virtual void SetFrequencyRangeComplete( TRadioServerError aError ) = 0;
+
+ /**
+ * Completion message for SetFrequency request.
+ *
+ * @since S60 3.0
+ * @param aError KErrNone if successful, otherwise one of the system/RadioServer errors.
+ */
+ virtual void SetFrequencyComplete( TRadioServerError aError ) = 0;
+
+ /**
+ * Completion message for StationSeek request.
+ *
+ * @since S60 3.0
+ * @param aError KErrNone if successful, otherwise one of the system/RadioServer errors.
+ * @param aFrequency Valid only if aError is KErrNone. Contains the new frequency in Hz.
+ */
+ virtual void StationSeekComplete( TRadioServerError aError, TInt aFrequency ) = 0;
+
+ /**
+ * Event notification indicating FM transmitter status change. Radio receiver
+ * is turned off when FM transmitter is active.
+ *
+ * @since S60 3.2
+ * @param aActive ETrue if FM transmitter is active; EFalse otherwise.
+ */
+ virtual void RadioEventTransmitterStatusChange( TBool aActive ) = 0;
+
+ /**
+ * Event notification indicating antenna status change.
+ *
+ * @since S60 3.0
+ * @param aAttached ETrue if antenna is attached.
+ */
+ virtual void RadioEventAntennaStatusChange( TBool aAttached ) = 0;
+
+ /**
+ * Event notification indicating offline mode change.
+ *
+ * @since S60 3.0
+ * @param aOfflineMode ETrue if device is in offline mode.
+ */
+ virtual void RadioEventOfflineModeChange( TBool aOfflineMode ) = 0;
+
+ /**
+ * Event notification indicating frequency range change. This may be caused by
+ * other applications.
+ *
+ * @since S60 3.2
+ * @param aNewRange New frequency range.
+ */
+ virtual void RadioEventFrequencyRangeChanged( TRsFrequencyRange aNewRange ) = 0;
+
+ /**
+ * Event notification indicating frequency(Hz) change. This may be caused by
+ * other applications or RDS if AF/TA is enabled.
+ *
+ * @since S60 3.2
+ * @param aFrequency New frequency where tuner is currently tuned.
+ */
+ virtual void RadioEventFrequencyChange( TInt aFrequency ) = 0;
+
+ /**
+ * Event notification indicating forced mono status change.
+ *
+ * @since S60 3.2
+ * @param aForcedMono ETrue if forced mode is enabled; EFalse otherwise.
+ */
+ virtual void RadioEventForcedMonoChanged( TBool aForcedMono ) = 0;
+
+ /**
+ * Event notification indicating squelch (muting the frequencies without broadcast) status change.
+ *
+ * @since S60 3.2
+ * @param aSquelch ETrue if squelch is enabled; EFalse otherwise.
+ */
+ virtual void RadioEventSquelchChanged( TBool aSquelch ) = 0;
+
+//********** Player related
+
+ /**
+ * Event notification indicating radio player state change. This may be caused by
+ * other applications.
+ *
+ * @since S60 3.0
+ * @param aRadioOn ETrue if radio is playing, otherwise radio is off.
+ * @param aError Valid only if aRadioOn is EFalse. Contains the reason why radio is off.
+ */
+ virtual void RadioEventStateChange( TBool aRadioOn, TRadioServerError aError ) = 0;
+
+ /**
+ * Event notification indicating volume change.
+ *
+ * @since S60 3.2
+ * @param aVolume New volume.
+ */
+ virtual void RadioEventVolumeChange( TInt aVolume ) = 0;
+
+ /**
+ * Event notification indicating mute setting change.
+ *
+ * @since S60 3.2
+ * @param aMute ETrue indicates audio is muted.
+ */
+ virtual void RadioEventMuteChange( TBool aMute ) = 0;
+
+ /**
+ * Event notification indicating balance setting change.
+ *
+ * @since S60 3.2
+ * @param aLeftPercentage Left speaker volume percentage. This value ranges from 0 to 100.
+ * @param aRightPercentage Right speaker volume percentage. This value ranges from 0 to 100.
+ */
+ virtual void RadioEventBalanceChange( TInt aLeftPercentage, TInt aRightPercentage ) = 0;
+
+//********** RDS related
+
+ /**
+ * Completion message for StationSeekByPTY request.
+ *
+ * @since S60 3.2
+ * @param aError KErrNone if successful, otherwise one of the system/RadioServer errors.
+ * @param aFrequency The frequency(Hz) of the radio station that was found.
+ */
+ virtual void StationSeekByPTYComplete( TRadioServerError aError, TInt aFrequency ) = 0;
+
+ /**
+ * Completion message for StationSeekByTA request.
+ *
+ * @since S60 3.2
+ * @param aError KErrNone if successful, otherwise one of the system/RadioServer errors.
+ * @param aFrequency The frequency(Hz) of the radio station that was found.
+ */
+ virtual void StationSeekByTAComplete( TRadioServerError aError, TInt aFrequency ) = 0;
+
+ /**
+ * Completion message for StationSeekByTP request.
+ *
+ * @since S60 3.2
+ * @param aError KErrNone if successful, otherwise one of the system/RadioServer errors.
+ * @param aFrequency The frequency(Hz) of the radio station that was found.
+ */
+ virtual void StationSeekByTPComplete( TRadioServerError aError, TInt aFrequency ) = 0;
+
+ /**
+ * Completion message for GetFreqByPTY request.
+ *
+ * @since S60 3.2
+ * @param aError KErrNone if successful, otherwise one of the system/RadioServer errors.
+ * @param aFreqList Array of frequencies (Hz), valid only if aError is KErrNone.
+ */
+ virtual void GetFreqByPTYComplete( TRadioServerError aError, RArray<TInt>& aFreqList ) = 0;
+
+ /**
+ * Completion message for GetFreqByTA request.
+ *
+ * @since S60 3.2
+ * @param aError KErrNone if successful, otherwise one of the system/RadioServer errors.
+ * @param aFreqList Array of frequencies (Hz), valid only if aError is KErrNone.
+ */
+ virtual void GetFreqByTAComplete( TRadioServerError aError, RArray<TInt>& aFreqList ) = 0;
+
+ /**
+ * Completion message for StatGetPSByPTY request.
+ *
+ * @since S60 3.2
+ * @param aError KErrNone if successful, otherwise one of the system/RadioServer errors.
+ * @param aPsList Array of programme service names, valid only if aError is KErrNone.
+ */
+ virtual void GetPSByPTYComplete( TRadioServerError aError, RArray<TRsRdsPSName>& aPsList ) = 0;
+
+ /**
+ * Completion message for GetPSByTA request.
+ *
+ * @since S60 3.2
+ * @param aError KErrNone if successful, otherwise one of the system/RadioServer errors.
+ * @param aPsList Array of programme service names, valid only if aError is KErrNone.
+ */
+ virtual void GetPSByTAComplete( TRadioServerError aError, RArray<TRsRdsPSName>& aPsList ) = 0;
+
+ /**
+ * Event notification indicating new Programme Identification(PI) is available.
+ *
+ * @since S60 3.2
+ * @param aPi Programme identification
+ */
+ virtual void RadioEventRdsDataPI( TInt aPi ) = 0;
+
+ /**
+ * Event notification indicating new Programme Type(PTY) is available.
+ *
+ * @since S60 3.2
+ * @param aPty Programme type
+ */
+ virtual void RadioEventRdsDataPTY( TRsRdsProgrammeType aPty ) = 0;
+
+ /**
+ * Event notification indicating new Programme Service(PS) is available.
+ *
+ * @since S60 3.2
+ * @param aPs Programme service
+ */
+ virtual void RadioEventRdsDataPS( TRsRdsPSName& aPs ) = 0;
+
+ /**
+ * Event notification indicating new Radio Text(RT) is available.
+ *
+ * @since S60 3.2
+ * @param aRt Radio text
+ */
+ virtual void RadioEventRdsDataRT( TRsRdsRadioText& aRt ) = 0;
+
+ /**
+ * Event notification indicating new Clock Time(CT) is available.
+ *
+ * @since S60 3.2
+ * @param aCt Clock time
+ */
+ virtual void RadioEventRdsDataCT( TDateTime& aCt ) = 0;
+
+ /**
+ * Event notification indicating Traffice Announcement(TA) status change.
+ *
+ * @since S60 3.2
+ * @param aTaOn ETrue indicates that Traffic Announcement is on.
+ */
+ virtual void RadioEventRdsDataTA( TBool aTaOn ) = 0;
+
+ /**
+ * Event notification indicating new Radio Text+(RT+) is available.
+ *
+ * @since S60 3.2
+ * @param aRtPlusClass Radio text plus class
+ * @param aRtPlusData Radio text plus data
+ */
+ virtual void RadioEventRdsDataRTplus( TRsRdsRTplusClass aRtPlusClass, TRsRdsRadioText& aRtPlusData ) = 0;
+
+ /**
+ * Event notification indicating the beginning of Alternate Frequency(AF) search.
+ *
+ * @since S60 3.2
+ */
+ virtual void RadioEventRdsSearchBeginAF() = 0;
+
+ /**
+ * Event notification indicating the end of Alternate Frequency(AF) search.
+ *
+ * @since S60 3.2
+ * @param aError KErrNone if successful, otherwise one of the system/RadioServer errors.
+ * @param aFrequency The frequency(Hz) of the radio station that was found.
+ */
+ virtual void RadioEventRdsSearchEndAF( TRadioServerError aError, TInt aFrequency ) = 0;
+
+ /**
+ * Event notification indicating station change to another frequency(Hz) that is
+ * broadcasting Traffic Announcement(TA).
+ *
+ * @since S60 3.2
+ * @param aFrequency The frequency(Hz) of the radio station that was found.
+ */
+ virtual void RadioEventRdsStationChangeTA( TInt aFrequency ) = 0;
+
+ /**
+ * Event notification indicating automatic switching (AF) setting change.
+ *
+ * @since S60 3.2
+ * @param aAuto ETrue indicates that automatic switching is on.
+ */
+ virtual void RadioEventRdsAutomaticSwitchingChange( TBool aAuto ) = 0;
+
+ /**
+ * Event notification indicating automatic traffic announcement setting change.
+ *
+ * @since S60 3.2
+ * @param aAuto ETrue indicates that automatic traffic announcement is on.
+ */
+ virtual void RadioEventRdsAutomaticTrafficAnnouncement( TBool aAuto ) = 0;
+
+ /**
+ * Event notification indicating RDS signal status change (i.e. signal is lost/restored).
+ *
+ * @since S60 3.2
+ * @param aSignal ETrue indicates that RDS signal is available in the tuned frequency.
+ */
+ virtual void RadioEventRdsSignalChange( TBool aSignal ) = 0;
+ };
+
+/**
+* Main interface to the Radio Server.
+* Implements the client-side session.
+*
+* @lib RadioSession.lib
+* @since S60 3.0
+*/
+class RRadioSession : public RSessionBase,
+ public MCustomCommand
+ {
+public: // New functions
+ IMPORT_C static RRadioSession* NewL();
+
+public: // Constructors and destructor
+
+ /**
+ * C++ default constructor.
+ */
+ IMPORT_C RRadioSession();
+
+public: // New functions
+
+ /**
+ * Connects a client to the radio server.
+ * @since S60 3.0
+ *
+ * @param aObserver The observer object for receiving async completion callbacks.
+ * @param aPrimaryClient Indicates whether the client is a primary client. Primary
+ * clients are clients that can control the radio tuner such as FM Radio Application,
+ * Visual Radio, or a Java Radio App. Non-primary clients are observers of the tuner,
+ * player, and RDS utilities and cannot exist without a primary client such as Active
+ * Idle, Cover UI, or a smart accessory driver.
+ * @return A standard system error code.
+ */
+ IMPORT_C TInt Connect( MRadioObserver& aObserver, TBool aPrimaryClient );
+
+ /**
+ * Gets the client side version number.
+ *
+ * @since S60 3.0
+ * @return The client side version number.
+ */
+ IMPORT_C TVersion Version() const;
+
+ /**
+ * Closes connection to the radio server.
+ *
+ * @since S60 3.0
+ */
+ IMPORT_C void Close();
+
+//********** TunerUtility control begins
+
+ /**
+ * Request for control of a tuner. If this method returns KErrNone, control of
+ * the tuner has been granted. Control to the tuner must be granted before any
+ * other request can be made.
+ *
+ * @since S60 3.2
+ * @param Tuner type (e.g. FM, AM)
+ * @return A standard system error code.
+ * @see MRadioObserver::RequestTunerControlComplete
+ */
+ IMPORT_C void RequestTunerControl( TRsTuner aTuner );
+
+ /**
+ * Get the capabilities of the radio on the device.
+ *
+ * @since S60 3.2
+ * @param aCaps The capabilities object to fill
+ * @return A standard system error code.
+ */
+ IMPORT_C TInt GetTunerCapabilities( TRsTunerCapabilities& aCaps ) const;
+
+ /**
+ * EnableTunerInOfflineMode on the device.
+ *
+ * @since S60 3.2
+ * @param aEnable ETrue to enable tuner functions in offline mode, EFalse to disable.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt EnableTunerInOfflineMode( TBool aEnable );
+
+ /**
+ * Asynchronous request to set the frequency range. If the frequency range is not set,
+ * it will be defaulted to ERsTunerFM.
+ *
+ * @since S60 3.2
+ * @param aRange Frequency range
+ * @see MRadioObserver::SetFrequencyRangeComplete
+ */
+ IMPORT_C void SetFrequencyRange( TRsFrequencyRange aRange );
+
+ /**
+ * Cancels an outstanding SetFrequencyRange request. Note that SetFrequencyRange may
+ * complete before cancel can occur and a callback may occur.
+ *
+ * @since S60 3.2
+ * @return A standard system error code.
+ */
+ IMPORT_C void CancelSetFrequencyRange();
+
+ /**
+ * Get the current frequency range. It also returns the minimum and maximum frequencies(Hz)
+ * for the returned range.
+ *
+ * @since S60 3.2
+ * @param aRange On return contains the current frequency range.
+ * @param aMinFreq On return contains the minimum frequency for the current frequency range.
+ * @param aMaxFreq On return contains the maximum frequency for the current frequency range.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetFrequencyRange( TRsFrequencyRange& aRange, TInt& aMinFreq, TInt& aMaxFreq ) const;
+
+ /**
+ * Asynchronous request to tune the tuner to the specified frequency.
+ *
+ * @since S60 3.2
+ * @param aFrequency The frequency (Hz) to tune to
+ * @see MRadioObserver::SetFrequecyComplete
+ */
+ IMPORT_C void SetFrequency( TInt aFrequency );
+
+ /**
+ * Cancels an outstanding SetFrequency request. Note that SetFrequency may complete before
+ * cancel can occur and a callback to MRadioObserver::SetFrequencyComplete may occur.
+ *
+ * @since S60 3.0
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C void CancelSetFrequency();
+
+ /**
+ * Get the current frequency.
+ *
+ * @since S60 3.2
+ * @param aFrequency On return contains the current frequency(Hz).
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetFrequency( TInt& aFrequency ) const;
+
+ /**
+ * Asynchronous request to find a radio station, starting from current frequency and
+ * seaching in the direction specified (i.e. up or down).
+ *
+ * @since S60 3.0
+ * @param aSeekUp Search direction
+ * @see MRadioObserver::StationSeekComplete
+ */
+ IMPORT_C void StationSeek( TBool aUpwards );
+
+ /**
+ * Cancels an outstanding StationSeek request. Note that StationSeek may complete before
+ * cancel can occur and a callback to MRadioObserver::StationSeekComplete may occur.
+ *
+ * @since S60 3.0
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C void CancelStationSeek();
+
+ /**
+ * Gets the signal strength of the currently tuned signal.
+ *
+ * @since S60 3.2
+ * @param aStrength On return contains the current signal strength.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetSignalStrength( TInt& aSignalStrength ) const;
+
+ /**
+ * Gets the maximum possible signal strength of a tuned signal.
+ *
+ * @since S60 3.2
+ * @param aMaxStrength On return contains the maximum signal strength.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetMaxSignalStrength( TInt& aMaxSignalStrength ) const;
+
+ /**
+ * Get the stereo mode of the radio.
+ *
+ * @since S60 3.2
+ * @param aStereo On return, will be ETrue if signal is stereo.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetStereoMode( TBool& aStereo ) const;
+
+ /**
+ * Indicates whether the reception should be forced into monophonic mode.
+ *
+ * @since S60 3.2
+ * @param aMono If ETrue, all reception will be in mono mode even if a stereo signal is
+ * available. If EFalse, a stereo signal will be received when possible.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt ForceMonoReception( TBool aForcedMono );
+
+ /**
+ * Checks whether force mono reception is on or not.
+ * @since S60 3.2
+ * @param aForceMono ETrue if force mono is on, EFalse otherwise.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetForceMonoReception( TBool& aForcedMono ) const;
+
+ /**
+ * Enable or disable quelch.
+ *
+ * @since S60 3.2
+ * @param aEnabled ETrue to enable squelching, EFalse to disable it.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt SetSquelch( TBool aEnabled );
+
+ /**
+ * Retrieves the current squelching (muting in frequencies without reception) setting
+ *
+ * @since S60 3.2
+ * @param aSquelch ETrue if a squelching is currently enabled
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetSquelch( TBool& aSquelch ) const;
+
+//********** PlayerUtility control begins
+
+ /**
+ * Retrieve the current state of the player.
+ * If the radio is already playing, client should simply retrieve current settings such
+ * as volume, etc.
+ *
+ * @since S60 3.2
+ * @return Radio player state.
+ */
+ IMPORT_C TInt PlayerState( TRsPlayerState& aState ) const;
+
+ /**
+ * Starts radio playback.
+ *
+ * @since S60 3.0
+ */
+ IMPORT_C void Play();
+
+ /**
+ * Stops playback, and release the output device for use by other clients.
+ *
+ * @since S60 3.0
+ * @param aIfOnlyPrimaryClient ETrue to stop playback only if there are no other primary clients
+ */
+ IMPORT_C void Stop( TBool aIfOnlyPrimaryClient = EFalse );
+
+ /**
+ * Retrieves the maximum volume supported.
+ *
+ * @since S60 3.0
+ * @param aVolume On return contains the maximum volume.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetMaxVolume( TInt& aMaxVolume ) const;
+
+ /**
+ * Sets the volume to the specified level.
+ *
+ * @since S60 3.0
+ * @param aVolume The volume level to set
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt SetVolume( TInt aVolume );
+
+ /**
+ * Get the current volume.
+ *
+ * @since S60 3.2
+ * @param aVolume On return contains the current volume.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetVolume( TInt& aVolume ) const;
+
+ /**
+ * Set a volume ramp.
+ *
+ * @since S60 3.2
+ * @param aRampInterval The time interval over which the volume should be increased from
+ * zero to the current volume setting.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt SetVolumeRamp( const TTimeIntervalMicroSeconds& aRampInterval );
+
+ /**
+ * Mutes or unmutes playback.
+ *
+ * @since S60 3.0
+ * @param aMute ETrue to mute the audio, EFalse to unmute it.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt Mute( TBool aMute );
+
+ /**
+ * Find out if the audio is muted or not.
+ *
+ * @since S60 3.2
+ * @param aVolume On return set to ETrue if audio is muted.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetMuteStatus( TBool& aMute ) const;
+
+ /**
+ * Set the speaker balance for playing.
+ *
+ * @since S60 3.2
+ * @param aLeftPercentage Left speaker volume percentage. This value ranges from 0 to 100.
+ * @param aRightPercentage Right speaker volume percentage. This value ranges from 0 to 100.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt SetBalance( TInt aLeftPercentage, TInt aRightPercentage );
+
+ /**
+ * Get the current speaker balance setting.
+ *
+ * @since S60 3.2
+ * @param aLeftPercentage On return contains the left speaker volume percentage.
+ * @param aRightPercentage On return contains the right speaker volume percentage.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetBalance( TInt& aLeftPercentage, TInt& aRightPercentage ) const;
+
+//********** RDSUtility control begins
+
+ /**
+ * Get the capabilities of the RDS control on the device.
+ *
+ * @since S60 3.2
+ * @param aCaps The capabilities object to fill
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetRdsCapabilities( TRsRdsCapabilities& aCaps ) const;
+
+ /**
+ * Get the status of the RDS reception.
+ *
+ * @since S60 3.2
+ * @param aRdsSignal On return, will be ETrue if RDS signal can be recepted, EFalse otherwise.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetRdsSignalStatus( TBool& aRdsSignal ) const;
+
+ /**
+ * Subscribe for notification for the specified RDS data. Client should first check
+ * the capabilities to see if a feature is supported.
+ * Request for notification for non-supported features will simply be ignored.
+ *
+ * @since S60 3.2
+ * @param aRdsData Bitfield indicating notification request.
+ * @return A standard system/RadioServer error code.
+ * @see MRadioObserver::RadioEventRdsDataPI
+ * @see MRadioObserver::RadioEventRdsDataPTY
+ * @see MRadioObserver::RadioEventRdsDataPS
+ * @see MRadioObserver::RadioEventRdsDataRT
+ * @see MRadioObserver::RadioEventRdsDataCT
+ * @see MRadioObserver::RadioEventRdsDataTA
+ */
+ IMPORT_C TInt NotifyRdsDataChange( TRsRdsData aRdsData );
+
+ /**
+ * Cancel NotifyRdsDataChange request.
+ *
+ * @since S60 3.2
+ */
+ IMPORT_C void CancelNotifyRdsDataChange();
+
+ /**
+ * Subscribe for notification for the specified RadioText+ data. Client should first check
+ * the capabilities to see if RT+ feature is supported.
+ * Returns KErrNotSupported if RT+ is not supported.
+ *
+ * Note that if the client wishes to receive the entire radio text data chunk, client should
+ * subscribe for ERsRdsRadioText using NotifyRdsDataChange instead.
+ *
+ * @since S60 3.2
+ * @param aRtPlusClasses Array of RT+ class to be notified
+ * @return A standard system/RadioServer error code.
+ * @see MRadioObserver::RadioEventRdsDataRTplus
+ */
+ IMPORT_C TInt NotifyRadioTextPlusChange( RArray<TInt>& aRtPlusClasses );
+
+ /**
+ * Cancel NotifyRadioTextPlusChange request.
+ *
+ * @since S60 3.2
+ */
+ IMPORT_C void CancelNotifyRadioTextPlusChange();
+
+ /**
+ * Turn on/off automatic switching of frequency based on Alternate Frequency.
+ * This will cause RDS device to search for alternate frequency when the signal strength
+ * deteriorates. User should be ready to receive RadioEventRdsSearchBeginAF and
+ * RadioEventRdsSearchEndAF. Automatic switching is off by default.
+ *
+ * @since S60 3.2
+ * @param aAuto ETrue to turn automatic switching on, EFalse to turn it off.
+ * @return A standard system/RadioServer error code.
+ * @see MRadioObserver::RadioEventRdsSearchBeginAF
+ * @see MRadioObserver::RadioEventRdsSearchEndAF
+ */
+ IMPORT_C TInt SetAutomaticSwitching( TBool aAuto );
+
+ /**
+ * Find out whether automatic switching is on or off.
+ *
+ * @since S60 3.2
+ * @param aAuto On return, ETrue indicates that automatic switching is enabled.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetAutomaticSwitching( TBool& aAuto );
+
+ /**
+ * Cancel ongoing search for an Alternate Frequency (AF) with stronger signal.
+ *
+ * Client can issue this request to interrupt the search indicated with
+ * MRadioObserver::RadioEventRdsSearchBeginAF.
+ *
+ * @since S60 3.2
+ */
+ IMPORT_C void CancelAFSearch();
+
+ /**
+ * Turns on/off automatic switching of frequency based on Traffic Announcement.
+ * This will cause RDS device to search for frequencies broadcasting traffic announcement.
+ * Client will be notified of frequency change though the tuner event.
+ * It's up to the client to return to the previous frequency when the traffic announcement
+ * is finished.
+ *
+ * NOTE: This is only supported in dual tuner configuration since the secondary tuner
+ * needs to perform continuous scanning for frequency broadcasting traffic announcement,
+ * while the primary tuner is used for normal tuner activities.
+ *
+ * @since S60 3.2
+ * @param aAuto ETrue indicates that automatic switching is on.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt SetAutomaticTrafficAnnouncement( TBool aAuto );
+
+ /**
+ * Find out whether automatic traffic announcement is enabled.
+ *
+ * @since S60 3.2
+ * @param aAuto On return, ETrue indicates that automatic traffic announcement is on.
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetAutomaticTrafficAnnouncement( TBool& aAuto );
+
+ /**
+ * Asynchronous request to find a radio station with the specified Programme Type(PTY),
+ * starting from the currently tuned frequency and searching in the direction specified
+ * (i.e. up or down). User must be ready to receive callback method StationSeekByPTYComplete
+ * The station found is returned in the callback.
+ *
+ * @since S60 3.2
+ * @param aPty The type of programme to search for.
+ * @param aSeekUp The direction to search in. Searches upwards if set to ETrue.
+ * @see MRadioObserver::StationSeekByPTYComplete
+ */
+ IMPORT_C void StationSeekByPTY( TRsRdsProgrammeType aPty, TBool aSeekUp );
+
+ /**
+ * Asynchronous request to find a radio station with Traffic Announcement(TA),
+ * starting from the currently tuned frequency and searching in the direction specified
+ * (i.e. up or down). User must be ready to receive callback method StationSeekByTAComplete
+ * The station found is returned in the callback.
+ *
+ * @since S60 3.2
+ * @param aSeekUp The direction to search in. Searches upwards if set to ETrue.
+ * @see MRadioObserver::StationSeekByTAComplete
+ */
+ IMPORT_C void StationSeekByTA( TBool aSeekUp );
+
+ /**
+ * Asynchronous request to find a radio station with Traffic Programme(TP),
+ * starting from the currently tuned frequency and searching in the direction specified
+ * (i.e. up or down). User must be ready to receive callback method StationSeekByTPComplete
+ * The station found is returned in the callback.
+ *
+ * @since S60 3.2
+ * @param aSeekUp The direction to search in. Searches upwards if set to ETrue.
+ * @see MRadioObserver::StationSeekByTPComplete
+ */
+ IMPORT_C void StationSeekByTP( TBool aSeekUp );
+
+ /**
+ * Cancels an ongoing retune operation, as initiated by a call to StationSeekByPTY,
+ * StationSeekByTA, or StationSeekByTP.
+ * The usual callback will not occur if this has been called.
+ *
+ * @since S60 3.2
+ */
+ IMPORT_C void CancelRdsStationSeek();
+
+ /**
+ * Asynchronous request to find all frequencies sending the given Programme Type (PTY).
+ * User must be ready to receive callback method GetFreqByPTYComplete.
+ *
+ * NOTE: This is only supported in dual tuner configuration since the secondary tuner
+ * needs to perform continuous scanning for frequencies broadcasting given Programme Type
+ * while the primary tuner is used for normal tuner activities.
+ * Client should first check the tuner capabilities. Will return KErrNotSupported in
+ * callback method if this feature is not supported.
+ *
+ * @since S60 3.2
+ * @param aPty The type of programme to search for
+ * @see MRadioObserver::GetFreqByPTYComplete
+ */
+ IMPORT_C void GetFreqByPTY( TRsRdsProgrammeType aPty );
+
+ /**
+ * Cancels an ongoing request to find all frequencies sending a given Programme Type (PTY).
+ * The usual callback will not occur if this has been called.
+ *
+ * @since S60 3.2
+ */
+ IMPORT_C void CancelGetFreqByPTY();
+
+ /**
+ * Asynchronous request to find all frequencies sending Traffic Announcement (TA). User must
+ * be ready to receive callback method GetFreqByTAComplete.
+ *
+ * NOTE: This is only supported in dual tuner configuration since the secondary tuner
+ * needs to perform continuous scanning for frequencies broadcasting given Traffic Announcement
+ * while the primary tuner is used for normal tuner activities.
+ * Client should first check the tuner capabilities. Will return KErrNotSupported in
+ * callback method if this feature is not supported.
+ *
+ * @since S60 3.2
+ * @see MRadioObserver::GetFreqByTAComplete
+ */
+ IMPORT_C void GetFreqByTA();
+
+ /**
+ * Cancels an ongoing request to find all frequencies sending Traffic Announcement.
+ * The usual callback will not occur if this has been called.
+ *
+ * @since S60 3.2
+ */
+ IMPORT_C void CancelGetFreqByTA();
+
+ /**
+ * Asynchronous request to find all Programme Service names (PS) sending the given Programme
+ * Type (PTY). User must be ready to receive callback method GetPSByPTYComplete.
+ *
+ * NOTE: This is only supported in dual tuner configuration since the secondary tuner
+ * needs to perform continuous scanning for frequencies broadcasting given Programme Type
+ * while the primary tuner is used for normal tuner activities.
+ * Client should first check the tuner capabilities. Will return KErrNotSupported in
+ * callback method if this feature is not supported.
+ *
+ * @since S60 3.2
+ * @param aPty The type of programme to search for
+ * @see MRadioObserver::GetPSByPTYComplete
+ */
+ IMPORT_C void GetPSByPTY( TRsRdsProgrammeType aPty );
+
+ /**
+ * Cancels an ongoing request to find all Programme Service names (PS) sending a given
+ * Programme Type (PTY). The usual callback will not occur if this has been called.
+ *
+ * @since S60 3.2
+ */
+ IMPORT_C void CancelGetPSByPTY();
+
+ /**
+ * Asynchronous request to find all Programme Service names (PS) sending Traffic Announcement (TA).
+ * User must be ready to receive callback method GetPSByTAComplete.
+ *
+ * NOTE: This is only supported in dual tuner configuration since the secondary tuner
+ * needs to perform continuous scanning for frequencies broadcasting given Traffic Announcement
+ * while the primary tuner is used for normal tuner activities.
+ * Client should first check the tuner capabilities. Will return KErrNotSupported in
+ * callback method if this feature is not supported.
+ *
+ * @since S60 3.2
+ * @see MRadioObserver::GetPSByTAComplete
+ */
+ IMPORT_C void GetPSByTA();
+
+ /**
+ * Cancels an ongoing request to find all Programme Service names (PS) sending Traffic Announcement.
+ * The usual callback will not occur if this has been called.
+ *
+ * @since S60 3.2
+ */
+ IMPORT_C void CancelGetPSByTA();
+
+ /**
+ * Get the current Programme Identification code.
+ * RDS data is received over the air and may not be available immediately following
+ * tune operation. If data is not available, this function will return KErrNotFound.
+ * If a value is returned, this is the last known value, which may not be up to date.
+ * To be notified of the most recent value, client should use NotifyRdsDataChange.
+ *
+ * @since S60 3.2
+ * @param aPi On return contains Programme Identification code
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetProgrammeIdentification( TInt& aPi );
+
+ /**
+ * Get the current Programme Type.
+ * RDS data is received over the air and may not be available immediately following
+ * tune operation. If data is not available, this function will return KErrNotFound.
+ * If a value is returned, this is the last known value, which may not be up to date.
+ * To be notified of the most recent value, client should use NotifyRdsDataChange.
+ *
+ * @since S60 3.2
+ * @param aPty On return contains Programme Type
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetProgrammeType( TRsRdsProgrammeType& aPty );
+
+ /**
+ * Get the current Programme Service name.
+ * RDS data is received over the air and may not be available immediately following
+ * tune operation. If data is not available, this function will return KErrNotFound.
+ * If a value is returned, this is the last known value, which may not be up to date.
+ * To be notified of the most recent value, client should use NotifyRdsDataChange.
+ *
+ * Programme Service name is fixed to 8 characters.
+ *
+ * @since S60 3.2
+ * @param aPs On return contains Programme Service name
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetProgrammeService( TRsRdsPSName& aPs );
+
+ /**
+ * Get the current Radio Text.
+ * RDS data is received over the air and may not be available immediately following
+ * tune operation. If data is not available, this function will return KErrNotFound.
+ * If a value is returned, this is the last known value, which may not be up to date.
+ * To be notified of the most recent value, client should use NotifyRdsDataChange.
+ *
+ * The maximum possible length for radio text field is 64 characters.
+ *
+ * @since S60 3.2
+ * @param aRt On return contains Radio Text
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetRadioText( TRsRdsRadioText& aRt );
+
+ /**
+ * Get the current Radio Text+.
+ * RDS data is received over the air and may not be available immediately following
+ * tune operation. If data is not available, this function will return KErrNotFound.
+ * If a value is returned, this is the last known value, which may not be up to date.
+ * To be notified of the most recent value, client should use NotifyRdsDataChange.
+ *
+ * The maximum possible length for radio text+ field is 64 characters.
+ *
+ * @since S60 3.2
+ * @param aRtPlusClass Radio text plus class
+ * @param aRtPlusData On return contains Radio Text+ field
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetRadioTextPlus( TRsRdsRTplusClass aRtPlusClass, TRsRdsRadioText& aRtPlusData );
+
+ /**
+ * Get the current Clock Time and date.
+ * RDS data is received over the air and may not be available immediately following
+ * tune operation. If data is not available, this function will return KErrNotFound.
+ * If a value is returned, this is the last known value, which may not be up to date.
+ * To be notified of the most recent value, client should use NotifyRdsDataChange.
+ *
+ * @since S60 3.2
+ * @param aCt On return contains current time and date
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetClockTime( TDateTime& aCt );
+
+ /**
+ * Get Traffic Announcement status at the current station.
+ *
+ * @since S60 3.2
+ * @param aTaStatus On return, will be ETrue if current station has ongoing traffic announcement
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetTrafficAnnouncementStatus( TBool& aTaStatus );
+
+ /**
+ * Get Traffic Programme status at the current station.
+ *
+ * @since S60 3.2
+ * @param aTpStatus On return, will be ETrue if current station supports traffic programme
+ * @return A standard system/RadioServer error code.
+ */
+ IMPORT_C TInt GetTrafficProgrammeStatus( TBool& aTpStatus );
+
+// from base class MCustomCommand
+
+ /**
+ * From MCustomCommand
+ * Sends a synchronous custom command to the radio server.
+ *
+ * @since S60 3.0
+ * @param aDestination The destination of the message, consisting of the uid of
+ * the interface of this message
+ * @param aFunction The function number to indicate which function is to be called
+ * on the interface defined in the aDestination parameter
+ * @param aDataTo1 The first chunk of data to be copied to the controller
+ * framework. The exact contents of the data are dependent on the
+ * interface being called. Can be KNullDesC8.
+ * @param aDataTo2 The second chunk of data to be copied to the controller
+ * framework. The exact contents of the data are dependent on the
+ * interface being called. Can be KNullDesC8.
+ * @return A standard system error code.
+ */
+ IMPORT_C TInt CustomCommandSync( const TMMFMessageDestinationPckg& aDestination,
+ TInt aFunction, const TDesC8& aDataTo1, const TDesC8& aDataTo2 );
+
+ /**
+ * From MCustomCommand
+ * Sends a synchronous custom command to the radio server.
+ *
+ * @since S60 3.0
+ * @param aDestination The destination of the message, consisting of the uid of
+ * the interface of this message
+ * @param aFunction The function number to indicate which function is to be called
+ * on the interface defined in the aDestination parameter
+ * @param aDataTo1 The first chunk of data to be copied to the controller
+ * framework. The exact contents of the data are dependent on the
+ * interface being called. Can be KNullDesC8.
+ * @param aDataTo2 The second chunk of data to be copied to the controller
+ * framework. The exact contents of the data are dependent on the
+ * interface being called. Can be KNullDesC8.
+ * @param aDataFrom The area of memory to which the controller framework
+ * will write any data to be passed back to the client. Can't be KNullDesC8.
+ * @return A standard system error code.
+ */
+ IMPORT_C TInt CustomCommandSync( const TMMFMessageDestinationPckg& aDestination,
+ TInt aFunction, const TDesC8& aDataTo1, const TDesC8& aDataTo2, TDes8& aDataFrom );
+
+ /**
+ * From MCustomCommand
+ * Sends an asynchronous custom command to the radio server.
+ *
+ * @since S60 3.0
+ * @param aDestination The destination of the message, consisting of the uid of
+ * the interface of this message
+ * @param aFunction The function number to indicate which function is to be called
+ * on the interface defined in the aDestination parameter
+ * @param aDataTo1 The first chunk of data to be copied to the controller
+ * framework. The exact contents of the data are dependent on the
+ * interface being called. Can be KNullDesC8.
+ * @param aDataTo2 The second chunk of data to be copied to the controller
+ * framework. The exact contents of the data are dependent on the
+ * interface being called. Can be KNullDesC8.
+ * @param aStatus The TRequestStatus of an active object. This will contain the
+ * result of the request on completion. The exact range of result values is
+ * dependent on the interface.
+ */
+ IMPORT_C void CustomCommandAsync( const TMMFMessageDestinationPckg& aDestination,
+ TInt aFunction, const TDesC8& aDataTo1, const TDesC8& aDataTo2, TRequestStatus& aStatus );
+
+ /**
+ * From MCustomCommand
+ * Sends an asynchronous custom command to the radio server.
+ *
+ * @since S60 3.0
+ * @param aDestination The destination of the message, consisting of the uid of
+ * the interface of this message
+ * @param aFunction The function number to indicate which function is to be called
+ * on the interface defined in the aDestination parameter
+ * @param aDataTo1 The first chunk of data to be copied to the controller
+ * framework. The exact contents of the data are dependent on the
+ * interface being called. Can be KNullDesC8.
+ * @param aDataTo2 The second chunk of data to be copied to the controller
+ * framework. The exact contents of the data are dependent on the
+ * interface being called. Can be KNullDesC8.
+ * @param aDataFrom The area of memory to which the controller framework
+ * will write any data to be passed back to the client. Can't be KNullDesC8.
+ * @param aStatus The TRequestStatus of an active object. This will contain the
+ * result of the request on completion. The exact range of result values is
+ * dependent on the interface.
+ */
+ IMPORT_C void CustomCommandAsync( const TMMFMessageDestinationPckg& aDestination, TInt aFunction,
+ const TDesC8& aDataTo1, const TDesC8& aDataTo2, TDes8& aDataFrom, TRequestStatus& aStatus );
+
+//********** Internal functions begin
+
+ /**
+ * Used internally to cancel outstanding asynchronous requests. This is triggered by
+ * CRadioRequest.
+ *
+ * @since S60 3.0
+ * @param aRequest The outstanding asynchronous request being cancelled
+ */
+ void CancelRequest( TInt aRequest );
+
+private:
+
+ /**
+ * Creates request handlers for each asynchronous request.
+ */
+ void StartRequestHandlersL( MRadioObserver& aObserver );
+
+ /**
+ * Creates event handlers for tuner and playback events from radio tuner.
+ */
+ void StartEventHandlersL( MRadioObserver& aObserver );
+
+ /**
+ * Creates event handlers for RDS events from radio tuner.
+ */
+ void StartRdsEventHandlersL( TUint32 aRdsFunctions );
+
+private: // Data
+
+ // Connection status
+ TBool iConnected;
+ // Requests that generates response to MRadioObserver
+ RPointerArray<CRadioRequest> iRequests;
+ // Event handlers that generates response to MRadioEventObserver
+ RPointerArray<CRadioEventHandler> iEventHandlers;
+ //Rds Event handlers
+ RPointerArray<CRadioEventHandler> iRdsEventHandlers;
+
+ // Destination information for standard radio interface messages
+ TMMFMessageDestinationPckg iDestinationPckg;
+
+ // Radio observer
+ MRadioObserver* iObserver;
+ // Client type
+ TBool iPrimaryClient;
+ // RDS notify flag
+ TBool iRdsNotify;
+
+ // RadioStubManager pointer points inside RadioStubManagerChunk
+ SRadioStubManager* iRadioStubManager;
+
+ // RadioStubManagerChunk handle
+ RChunk iRadioStubManagerChunk;
+
+ CRadioRequest* iExtraRequestForBugHunting;
+
+ };
+
+#endif // RADIOSESSION_H
+
+// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmserv/radioutility/tsrc/bld.inf Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+#include "../presetutility/group/bld.inf"
+#include "../radioserver/Session/stub/group/bld.inf"
+#include "../radio_utility/stub/group/bld.inf"
--- a/mmserv/sts/rom/mmmwsystemtoneservice.iby Fri Jul 23 17:29:03 2010 -0500
+++ b/mmserv/sts/rom/mmmwsystemtoneservice.iby Fri Aug 06 16:55:00 2010 -0500
@@ -14,10 +14,6 @@
* Description: STS IBY file
*
*/
-/*
- * sts.iby
- *
- */
#ifndef MMMWSYSTEMTONESERVICE_IBY
#define MMMWSYSTEMTONESERVICE_IBY
@@ -32,4 +28,4 @@
#endif //MMMWSYSTEMTONESERVICE_IBY
-//End of File
\ No newline at end of file
+//End of File
--- a/mmserv/sts/sts/src/stsplayer.cpp Fri Jul 23 17:29:03 2010 -0500
+++ b/mmserv/sts/sts/src/stsplayer.cpp Fri Aug 06 16:55:00 2010 -0500
@@ -28,8 +28,6 @@
{
CStsPlayer* self = 0;
-
-
self = new CStsPlayer(aObserver, aFileName, 0, aContext, aVolume, aAudioPreference, aAudioPriority);
--- a/mmserv/sts/stsserver/group/stsserver.mmp Fri Jul 23 17:29:03 2010 -0500
+++ b/mmserv/sts/stsserver/group/stsserver.mmp Fri Aug 06 16:55:00 2010 -0500
@@ -49,4 +49,4 @@
LIBRARY libc.lib
LIBRARY libstdcpp.lib
LIBRARY mediaclientaudio.lib
-LIBRARY profileengine.lib
\ No newline at end of file
+LIBRARY profileengine.lib
--- a/mmserv/tms/rom/tms.iby Fri Jul 23 17:29:03 2010 -0500
+++ b/mmserv/tms/rom/tms.iby Fri Aug 06 16:55:00 2010 -0500
@@ -1,28 +1,26 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Telephony Multimedia Service
-*
-*/
-/*
- * tms.iby
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Telephony Multimedia Service
*
*/
-#ifndef __TMS_IBY__
-#define __TMS_IBY__
+#ifndef TMS_IBY
+#define TMS_IBY
+#include <data_caging_paths_for_iby.hrh>
#include <bldvariant.hrh>
+
#ifdef FF_TMS
file=ABI_DIR/BUILD_DIR/tmsapi.dll SHARED_LIB_DIR/tmsapi.dll
@@ -39,6 +37,6 @@
#endif //FF_TMS
-#endif //__TMS_IBY__
+#endif //TMS_IBY
//End of File
\ No newline at end of file
--- a/mmserv/tms/tmscallserver/eabi/tmscallserver.def Fri Jul 23 17:29:03 2010 -0500
+++ b/mmserv/tms/tmscallserver/eabi/tmscallserver.def Fri Aug 06 16:55:00 2010 -0500
@@ -1,25 +1,25 @@
EXPORTS
_ZN3TMS13TMSCallServer11StartThreadEPv @ 1 NONAME
- _ZTIN3TMS11TMSCallAdptE @ 2 NONAME
- _ZTIN3TMS11TMSIPUplinkE @ 3 NONAME
- _ZTIN3TMS13TMSCallCSAdptE @ 4 NONAME
- _ZTIN3TMS13TMSCallIPAdptE @ 5 NONAME
- _ZTIN3TMS13TMSCallServerE @ 6 NONAME
- _ZTIN3TMS13TMSIPDownlinkE @ 7 NONAME
- _ZTIN3TMS14TMSCallSessionE @ 8 NONAME
- _ZTIN3TMS14TMSTarSettingsE @ 9 NONAME
- _ZTIN3TMS17TMSCallDelayTimerE @ 10 NONAME
- _ZTIN3TMS19TMSIPCallStreamBaseE @ 11 NONAME
- _ZTVN3TMS11TMSCallAdptE @ 12 NONAME
- _ZTVN3TMS11TMSIPUplinkE @ 13 NONAME
- _ZTVN3TMS13TMSCallCSAdptE @ 14 NONAME
- _ZTVN3TMS13TMSCallIPAdptE @ 15 NONAME
- _ZTVN3TMS13TMSCallServerE @ 16 NONAME
- _ZTVN3TMS13TMSIPDownlinkE @ 17 NONAME
- _ZTVN3TMS14TMSCallSessionE @ 18 NONAME
- _ZTVN3TMS14TMSTarSettingsE @ 19 NONAME
- _ZTVN3TMS17TMSCallDelayTimerE @ 20 NONAME
- _ZTVN3TMS19TMSIPCallStreamBaseE @ 21 NONAME
- _ZTIN3TMS10TMSSyncVolE @ 22 NONAME
- _ZTVN3TMS10TMSSyncVolE @ 23 NONAME
+ _ZTIN3TMS10TMSSyncVolE @ 2 NONAME
+ _ZTIN3TMS11TMSCallAdptE @ 3 NONAME
+ _ZTIN3TMS11TMSIPUplinkE @ 4 NONAME
+ _ZTIN3TMS13TMSCallCSAdptE @ 5 NONAME
+ _ZTIN3TMS13TMSCallIPAdptE @ 6 NONAME
+ _ZTIN3TMS13TMSCallServerE @ 7 NONAME
+ _ZTIN3TMS13TMSIPDownlinkE @ 8 NONAME
+ _ZTIN3TMS14TMSCallSessionE @ 9 NONAME
+ _ZTIN3TMS14TMSTarSettingsE @ 10 NONAME
+ _ZTIN3TMS17TMSCallDelayTimerE @ 11 NONAME
+ _ZTIN3TMS19TMSIPCallStreamBaseE @ 12 NONAME
+ _ZTVN3TMS10TMSSyncVolE @ 13 NONAME
+ _ZTVN3TMS11TMSCallAdptE @ 14 NONAME
+ _ZTVN3TMS11TMSIPUplinkE @ 15 NONAME
+ _ZTVN3TMS13TMSCallCSAdptE @ 16 NONAME
+ _ZTVN3TMS13TMSCallIPAdptE @ 17 NONAME
+ _ZTVN3TMS13TMSCallServerE @ 18 NONAME
+ _ZTVN3TMS13TMSIPDownlinkE @ 19 NONAME
+ _ZTVN3TMS14TMSCallSessionE @ 20 NONAME
+ _ZTVN3TMS14TMSTarSettingsE @ 21 NONAME
+ _ZTVN3TMS17TMSCallDelayTimerE @ 22 NONAME
+ _ZTVN3TMS19TMSIPCallStreamBaseE @ 23 NONAME
--- a/mmserv/tms/tmscallserver/src/tmscallipadpt.cpp Fri Jul 23 17:29:03 2010 -0500
+++ b/mmserv/tms/tmscallserver/src/tmscallipadpt.cpp Fri Aug 06 16:55:00 2010 -0500
@@ -259,6 +259,7 @@
if (strmId == iUplinkStreamId && iIPUplink)
{
iIPUplink->Stop();
+ iUplState = EInitialized;
status = TMS_RESULT_SUCCESS;
NotifyClient(iUplinkStreamId, ECmdUplinkPaused, status);
}
@@ -269,6 +270,7 @@
if (strmId == iDnlinkStreamId && iIPDownlink)
{
iIPDownlink->Stop();
+ iDnlState = EInitialized;
status = TMS_RESULT_SUCCESS;
NotifyClient(iDnlinkStreamId, ECmdDownlinkPaused, status);
}
--- a/mmserv/tms/tmscallserver/src/tmscsdevsound.cpp Fri Jul 23 17:29:03 2010 -0500
+++ b/mmserv/tms/tmscallserver/src/tmscsdevsound.cpp Fri Aug 06 16:55:00 2010 -0500
@@ -68,11 +68,7 @@
iPreference = KAudioPrefCSCallDownlink;
}
- if (iInitRetryTime != 0)
- {
- iTimer = TMSTimer::NewL();
- }
-
+ iTimer = TMSTimer::NewL();
InitializeL();
TRACE_PRN_FN_EXT;
}
--- a/mmserv/tms/tmsimpl/group/tmsimpl.mmp Fri Jul 23 17:29:03 2010 -0500
+++ b/mmserv/tms/tmsimpl/group/tmsimpl.mmp Fri Aug 06 16:55:00 2010 -0500
@@ -96,6 +96,7 @@
LIBRARY tmsapi.lib
LIBRARY tmscallproxy.lib
LIBRARY tmsproxy.lib
+LIBRARY tmsutility.lib
LIBRARY libc.lib
DEFFILE tmsimpl.def
--- a/mmserv/tms/tmsimpl/src/tmsstreambodyimpl.cpp Fri Jul 23 17:29:03 2010 -0500
+++ b/mmserv/tms/tmsimpl/src/tmsstreambodyimpl.cpp Fri Aug 06 16:55:00 2010 -0500
@@ -722,7 +722,7 @@
void* user_data)
{
TMSSignalEvent event = {}; //all elements initialized to zeros
- event.reason = aError;
+ event.reason = TMSRESULT(aError);
event.user_data = user_data;
iStreamState = aEventType;
--- a/mmserv/tms/tmsserver/inc/tmsrtplayer.h Fri Jul 23 17:29:03 2010 -0500
+++ b/mmserv/tms/tmsserver/inc/tmsrtplayer.h Fri Aug 06 16:55:00 2010 -0500
@@ -201,7 +201,7 @@
/**
* Initializes ring tone configuration parameters.
*/
- void InitRtParamsL(TRtPlayerType aPlayerType);
+ void InitRtParams(TRtPlayerType aPlayerType);
/*
* from TMSRtAudioHdlrObsrv
--- a/mmserv/tms/tmsserver/src/tmsrtplayer.cpp Fri Jul 23 17:29:03 2010 -0500
+++ b/mmserv/tms/tmsserver/src/tmsrtplayer.cpp Fri Aug 06 16:55:00 2010 -0500
@@ -115,7 +115,7 @@
iEngine = ProEngFactory::NewEngineL();
- InitRtParamsL(EPlayerBackup);
+ InitRtParams(EPlayerBackup);
//CreateDefaultRingToneL();
CreateBkpRtPlayerL();
//GetMaxToneFileSizeL(iToneFileSizeLimitKB);
@@ -152,10 +152,10 @@
}
// -----------------------------------------------------------------------------
-// TMSRingTonePlayer::InitRtParamsL
+// TMSRingTonePlayer::InitRtParams
// -----------------------------------------------------------------------------
//
-void TMSRingTonePlayer::InitRtParamsL(TRtPlayerType aPlayerType)
+void TMSRingTonePlayer::InitRtParams(TRtPlayerType aPlayerType)
{
TRACE_PRN_FN_ENT;
@@ -183,7 +183,7 @@
{
TRACE_PRN_FN_ENT;
- InitRtParamsL(EPlayerDefault);
+ InitRtParams(EPlayerDefault);
LoadProfileRingToneL();
TRACE_PRN_FN_EXT;
--- a/mmserv/tms/tmsserver/src/tmsserver.cpp Fri Jul 23 17:29:03 2010 -0500
+++ b/mmserv/tms/tmsserver/src/tmsserver.cpp Fri Aug 06 16:55:00 2010 -0500
@@ -142,6 +142,7 @@
iDTMFDnlinkPlayer = NULL;
iDTMFUplinkPlayer = NULL;
iDTMFUplinkPlayerEtel = NULL;
+ iActiveCallType = -1;
iSyncVol = TMSPubSubListener::NewL(KTMSPropertyCategory,ESyncVolume, this);
//TODO: EUnit fails to initialize ProfileEngine in RT in eshell mode
@@ -858,12 +859,7 @@
}
if (!iDTMFUplinkPlayer) //IP call
{
- // TODO: Ongoing work with Audio Policy team...
TRAP(status, iDTMFUplinkPlayer = TMSAudioDtmfTonePlayer::NewL(*this,
-// KAudioPrefVoipAudioUplinkNonSignal,
-// KAudioPrefVoipAudioUplink,
-// KAudioPrefUnknownVoipAudioUplink
-// KAudioPriorityDTMFString));
KAudioDTMFString, KAudioPriorityDTMFString));
}
}
@@ -988,6 +984,7 @@
status = TMS_RESULT_SUCCESS;
}
}
+ iActiveCallType = -1;
NotifyDtmfClients(ECmdDTMFTonePlayFinished, status);
aMessage.Complete(status);
TRACE_PRN_FN_EXT;
@@ -1002,16 +999,13 @@
TInt TMSServer::ContinueSendingDTMF(const RMessage2& aMessage)
{
TRACE_PRN_FN_ENT;
-
TInt status(TMS_RESULT_INVALID_STATE);
- TBool continuesnd;
- continuesnd = (TBool) aMessage.Int0();
- if (iActiveCallType == TMS_CALL_CS && iDTMFUplinkPlayerEtel)
+ if (iActiveCallType == TMS_CALL_CS && iDTMFUplinkPlayerEtel)
{
+ TBool continuesnd = (TBool) aMessage.Int0();
status = iDTMFUplinkPlayerEtel->ContinueDtmfStringSending(continuesnd);
status = TMSUtility::EtelToTMSResult(status);
}
-
aMessage.Complete(status);
TRACE_PRN_FN_EXT;
return status;
--- a/mmserv/voipaudioservices/VoIPIntfc/src/VoIPUtilityFactoryImpl.cpp Fri Jul 23 17:29:03 2010 -0500
+++ b/mmserv/voipaudioservices/VoIPIntfc/src/VoIPUtilityFactoryImpl.cpp Fri Aug 06 16:55:00 2010 -0500
@@ -71,7 +71,7 @@
// deny access to audio resources.
iPriorityDn.iPref = KAudioPrefVoipAudioDownlink;
iPriorityDn.iPriority = KAudioPriorityVoipAudioDownlink;
- iPriorityUp.iPref = KAudioPrefVoipAudioUplink;
+ iPriorityUp.iPref = KAudioPrefVoipAudioUplinkNonSignal; //for DTMF mixing
iPriorityUp.iPriority = KAudioPriorityVoipAudioUplink;
}
--- a/mmserv/voipaudioservices/VoIPServer/inc/VoIPQueueHandlerSrv.h Fri Jul 23 17:29:03 2010 -0500
+++ b/mmserv/voipaudioservices/VoIPServer/inc/VoIPQueueHandlerSrv.h Fri Aug 06 16:55:00 2010 -0500
@@ -22,8 +22,6 @@
#include <e32base.h>
#include <e32msgqueue.h>
#include "VoIPAudioClientServer.h" // for TVoIPMsgBuf
-// FORWARD DECLARATIONS
-
/**
* MQueueHandlerObserver
--- a/mmserv/voipaudioservices/VoIPServer/inc/VoIPServerThread.h Fri Jul 23 17:29:03 2010 -0500
+++ b/mmserv/voipaudioservices/VoIPServer/inc/VoIPServerThread.h Fri Aug 06 16:55:00 2010 -0500
@@ -16,8 +16,8 @@
*
*/
-#ifndef __VOIPAUDIOSERVERTHREAD_H
-#define __VOIPAUDIOSERVERTHREAD_H
+#ifndef VOIPAUDIOSERVERTHREAD_H
+#define VOIPAUDIOSERVERTHREAD_H
#include <e32msgqueue.h>
#include <sounddevice.h>
@@ -281,6 +281,6 @@
};
-#endif // __VOIPAUDIOSERVERTHREAD_H
+#endif // VOIPAUDIOSERVERTHREAD_H
// End of file
--- a/package_definition.xml Fri Jul 23 17:29:03 2010 -0500
+++ b/package_definition.xml Fri Aug 06 16:55:00 2010 -0500
@@ -1,79 +1,178 @@
<?xml version="1.0" encoding="UTF-8"?>
-<SystemDefinition schema="3.0.0">
- <package id="mmmw" name="Multimedia Middleware" levels="plugin framework server generic specific">
- <collection id="khronosfws" name="Khronos Frameworks" level="framework">
- <component id="openmax_al" filter="s60" name="OpenMAX AL" class="framework" introduced="^4">
+<SystemDefinition schema="3.0.1">
+ <package id="mmmw" name="Multimedia Middleware" levels="plugin framework server generic specific">
+ <collection id="mmmw_plat" name="Multimedia Middleware Platform Interfaces" level="specific">
+ <meta rel="testbuild">
+ <group name="mmmw_tsrc_group"/>
+ </meta>
+ <component id="audio_metadata_reader_api" name="Audio MetaData Reader API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/audio_metadata_reader_api/audio_metadata_reader_api.metaxml"/>
+ <unit bldFile="mmmw_plat/audio_metadata_reader_api/group" filter="!test"/>
+ <unit bldFile="mmmw_plat/audio_metadata_reader_api/tsrc/Group" filter="test,api_test,pref_test,TA_MMMW"/>
+ </component>
+ <component id="audio_output_control_utility_api" name="Audio Output Control Utility API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/audio_output_control_utility_api/audio_output_control_utility_api.metaxml"/>
+ <unit bldFile="mmmw_plat/audio_output_control_utility_api/group" filter="!test"/>
+ <unit bldFile="mmmw_plat/audio_output_control_utility_api/tsrc/Group" filter="test,api_test,pref_test,TA_MMMW"/>
+ </component>
+ <component id="audio_output_control_utility_proxy_api" name="Audio Output Control Utility Proxy API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/audio_output_control_utility_proxy_api/audio_output_control_utility_proxy_api.metaxml"/>
+ <unit bldFile="mmmw_plat/audio_output_control_utility_proxy_api/group"/>
+ </component>
+ <component id="call_audio_control_api" name="Call AudioControl API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/call_audio_control_api/call_audio_control_api.metaxml"/>
+ <unit bldFile="mmmw_plat/call_audio_control_api/group" filter="!test"/>
+ <unit bldFile="mmmw_plat/call_audio_control_api/tsrc/Group" filter="test,api_test,pref_test,TA_MMMW"/>
+ </component>
+ <component id="configuration_components_factory_api" name="Configuration Components Factory API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/configuration_components_factory_api/configuration_components_factory_api.metaxml"/>
+ <unit bldFile="mmmw_plat/configuration_components_factory_api/group"/>
+ </component>
+ <component id="emc_audio_effects_api" name="EMC Audio Effects API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/emc_audio_effects_api/emc_audio_effects_api.metaxml"/>
+ <unit bldFile="mmmw_plat/emc_audio_effects_api/group"/>
+ </component>
+ <component id="emc_balance_effect_api" name="EMC Balance Effect API" class="api" filter="s60">
+ <unit bldFile="mmmw_plat/emc_balance_effect_api/group"/>
+ </component>
+ <component id="emc_buffer_source_api" name="EMC Buffer Source API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/emc_buffer_source_api/emc_buffer_source_api.metaxml"/>
+ <unit bldFile="mmmw_plat/emc_buffer_source_api/group"/>
+ </component>
+ <component id="emc_descriptor_source_api" name="EMC Descriptor Source API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/emc_descriptor_source_api/emc_descriptor_source_api.metaxml"/>
+ <unit bldFile="mmmw_plat/emc_descriptor_source_api/group"/>
+ </component>
+ <component id="emc_drm_config_intfc_api" name="EMC DRM Config Intfc API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/emc_drm_config_intfc_api/emc_drm_config_intfc_api.metaxml"/>
+ <unit bldFile="mmmw_plat/emc_drm_config_intfc_api/group"/>
+ </component>
+ <component id="emc_file_source_api" name="EMC File Source API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/emc_file_source_api/emc_file_source_api.metaxml"/>
+ <unit bldFile="mmmw_plat/emc_file_source_api/group"/>
+ </component>
+ <component id="emc_volume_effect_api" name="EMC Volume Effect API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/emc_volume_effect_api/emc_volume_effect_api.metaxml"/>
+ <unit bldFile="mmmw_plat/emc_volume_effect_api/group"/>
+ </component>
+ <component id="enhanced_media_client_api" name="Enhanced Media Client API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/enhanced_media_client_api/enhanced_media_client_api.metaxml"/>
+ <unit bldFile="mmmw_plat/enhanced_media_client_api/group" filter="!test"/>
+ <unit bldFile="mmmw_plat/enhanced_media_client_api/tsrc/Group" filter="test,api_test,pref_test,TA_MMMW"/>
+ </component>
+ <component id="multimedia_data_source_api" name="Multimedia Data Source API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/multimedia_data_source_api/multimedia_data_source_api.metaxml"/>
+ <unit bldFile="mmmw_plat/multimedia_data_source_api/group"/>
+ </component>
+ <component id="openmax_al_api" name="OpenMAX AL API" class="api" filter="s60" introduced="^4">
+ <meta rel="Api" href="mmmw_plat/openmax_al_api/openmax_al_api.metaxml"/>
+ <unit bldFile="mmmw_plat/openmax_al_api/group" filter="!test"/>
+ <unit bldFile="mmmw_plat/openmax_al_api/tsrc/openmaxaltestmodule/group" filter="test,api_test,pref_test,TA_MMMW"/>
+ </component>
+ <component id="openmax_al_ext_api" name="OpenMAX AL Extensions API" class="api" filter="s60" introduced="^4">
+ <meta rel="Api" href="mmmw_plat/openmax_al_ext_api/openmax_al_ext_api.metaxml"/>
+ <unit bldFile="mmmw_plat/openmax_al_ext_api/group"/>
+ </component>
+ <component id="radio_monitor_api" name="Radio Monitor API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/radio_monitor_api/radio_monitor_api.metaxml"/>
+ <unit bldFile="mmmw_plat/radio_monitor_api/group"/>
+ </component>
+ <component id="radio_preset_utilities_api" name="Radio Preset Utilities API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/radio_preset_utilities_api/radio_preset_utilities_api.metaxml"/>
+ <unit bldFile="mmmw_plat/radio_preset_utilities_api/group"/>
+ </component>
+ <component id="radio_utilities_api" name="Radio Utilities API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/radio_utilities_api/radio_utilities_api.metaxml"/>
+ <unit bldFile="mmmw_plat/radio_utilities_api/group" filter="!test"/>
+ <unit bldFile="mmmw_plat/radio_utilities_api/tsrc/Group" filter="test,api_test,pref_test,TA_MMMW"/>
+ </component>
+ <component id="stream_control_custom_command_api" name="Stream Control Custom Command API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/stream_control_custom_command_api/stream_control_custom_command_api.metaxml"/>
+ <unit bldFile="mmmw_plat/stream_control_custom_command_api/group"/>
+ </component>
+ <component id="system_tone_service_api" name="System Tone Service API" class="api" filter="s60" introduced="^4">
+ <unit bldFile="mmmw_plat/system_tone_service_api/group"/>
+ <unit bldFile="mmmw_plat/system_tone_service_api/tsrc/group" filter="test,api_test,pref_test,TA_MMMW"/>
+ </component>
+ <component id="telephony_multimedia_service_api" name="Telephony Multimedia Service API" class="api" filter="s60">
+ <meta rel="testbuild">
+ <group name="mmmw_tms_tsrc_group"/>
+ </meta>
+ <unit bldFile="mmmw_plat/telephony_multimedia_service_api/group" filter="!test"/>
+ <unit bldFile="mmmw_plat/telephony_multimedia_service_api/tsrc/Group" filter="test,api_test,pref_test,TA_MMMW,TA_TMS"/>
+ </component>
+ <component id="thumbnail_engine_api" name="Thumbnail Engine API" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/thumbnail_engine_api/thumbnail_engine_api.metaxml"/>
+ <unit bldFile="mmmw_plat/thumbnail_engine_api/group" filter="!test"/>
+ <unit bldFile="mmmw_plat/thumbnail_engine_api/tsrc/Group" filter="test,api_test,pref_test,TA_MMMW"/>
+ </component>
+ <component id="voip_audio_services_api" name="VoIP Audio Services" class="api" filter="s60">
+ <meta rel="Api" href="mmmw_plat/voip_audio_services_api/voip_audio_services_api.metaxml"/>
+ <unit bldFile="mmmw_plat/voip_audio_services_api/group" filter="!test"/>
+ <unit bldFile="mmmw_plat/voip_audio_services_api/tsrc/Group" filter="test,api_test,pref_test,TA_MMMW"/>
+ </component>
+ </collection>
+ <collection id="khronosfws" name="Khronos Frameworks" level="framework">
+ <component id="openmax_al" filter="s60" name="OpenMAX AL" introduced="^4">
<unit bldFile="khronosfws/openmax_al/group"/>
</component>
- </collection>
- <collection id="mmfenh" name="MMF Enhancements" level="generic">
- <component id="advancedaudiocontroller" filter="s60" name="Advanced Audio Controllers" class="plugin">
- <unit bldFile="mmfenh/advancedaudiocontroller/group"/>
- </component>
- <component id="audiooutputcontrolutility" filter="s60" name="Audio Output Control Utility">
- <unit bldFile="mmfenh/audiooutputcontrolutility/group"/>
- </component>
- <component id="configurationcomponentsfactory" filter="s60" name="Configuration Components Factory">
- <unit bldFile="mmfenh/configurationcomponentsfactory/group"/>
- </component>
- <component id="enhancedaudioplayerutility" filter="s60" name="Enhanced Audio Player Utility">
- <unit bldFile="mmfenh/enhancedaudioplayerutility/group"/>
- </component>
- <component id="enhancedmediaclient" filter="s60" name="Enhanced Media Client">
- <unit bldFile="mmfenh/enhancedmediaclient/group"/>
- </component>
- <component id="profilesettingsmonitor" filter="s60" name="Profile Settings Monitor">
- <unit bldFile="mmfenh/profilesettingsmonitor/group"/>
- </component>
- <component id="progressivedownload" filter="s60" name="Progressive Download">
- <unit bldFile="mmfenh/progressivedownload/group"/>
- </component>
- <component id="mmfenh_test" filter="s60,test,module_test,pref_test" name="MMF Enhancements Tests" purpose="development">
- <unit bldFile="mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/group"/>
- </component>
- </collection>
- <collection id="mmserv" name="Multimedia Services" level="specific">
- <component id="audioeffectsui" filter="s60" name="Audio Effects UI">
- <unit bldFile="mmserv/audioeffectsui/group"/>
- </component>
- <component id="callaudiocontrol" filter="s60" name="Call Audio Control">
- <unit bldFile="mmserv/callaudiocontrol/group"/>
- </component>
- <component id="metadatautility" filter="s60" name="Metadata Utility">
- <unit bldFile="mmserv/metadatautility/group"/>
- </component>
- <component id="radioutility" filter="s60" name="Radio Utility">
- <unit bldFile="mmserv/radioutility/group"/>
- </component>
- <component id="sts" filter="s60" name="System Tone Service" introduced="^4">
- <unit bldFile="mmserv/sts/group"/>
- </component>
- <component id="thumbnailengine" filter="s60" name="Thumbnail Engine" introduced="^2">
- <unit bldFile="mmserv/thumbnailengine/group"/>
- </component>
- <component id="tms" filter="s60" name="Telephony Multimedia Service" introduced="^3">
- <unit bldFile="mmserv/tms/group"/>
- </component>
- <component id="voipaudioservices" filter="s60" name="VoIP Audio Services">
- <unit bldFile="mmserv/voipaudioservices/group"/>
- </component>
- <component id="lib3gpextparser" filter="s60" name="3GP Extension Metadata Parser Library">
- <unit bldFile="mmserv/metadatautility/3GPExtParserLib_stub/group" filter="sf_build"/>
- </component>
- </collection>
- <collection id="mmmw_info" name="Multimedia Middleware Info" level="specific">
- <component id="mmmw_test" filter="s60,test,api_test,pref_test" name="Multimedia Middleware Tests" purpose="development">
- <unit bldFile="tsrc/group"/>
- </component>
- <component id="mmmw_api_test" filter="s60,test,api_test" name="Multimedia Middleware API Tests" purpose="development">
- <unit bldFile="mmmw_plat/telephony_multimedia_service_api/tsrc/group"/>
- </component>
- <component id="mmmw_plat" filter="s60" name="Multimedia Middleware Platform Interfaces" class="api">
- <unit bldFile="mmmw_plat/group"/>
- </component>
- <component id="mmmw_metadata" name="Multimedia Middleware Metadata" class="config" introduced="^2" purpose="development" target="desktop">
- <unit mrp="mmmw_info/mmmw_metadata/mmmw_metadata.mrp"/>
- </component>
- </collection>
- </package>
+ </collection>
+ <collection id="mmfenh" name="MMF Enhancements" level="generic">
+ <component id="advancedaudiocontroller" filter="s60" name="Advanced Audio Controllers" class="plugin">
+ <unit bldFile="mmfenh/advancedaudiocontroller/group"/>
+ </component>
+ <component id="audiooutputcontrolutility" filter="s60" name="Audio Output Control Utility">
+ <unit bldFile="mmfenh/audiooutputcontrolutility/group"/>
+ </component>
+ <component id="configurationcomponentsfactory" filter="s60" name="Configuration Components Factory">
+ <unit bldFile="mmfenh/configurationcomponentsfactory/group"/>
+ </component>
+ <component id="enhancedaudioplayerutility" filter="s60" name="Enhanced Audio Player Utility">
+ <unit bldFile="mmfenh/enhancedaudioplayerutility/group"/>
+ </component>
+ <component id="enhancedmediaclient" filter="s60" name="Enhanced Media Client">
+ <unit bldFile="mmfenh/enhancedmediaclient/group"/>
+ </component>
+ <component id="profilesettingsmonitor" filter="s60" name="Profile Settings Monitor">
+ <unit bldFile="mmfenh/profilesettingsmonitor/group"/>
+ </component>
+ <component id="mmfenh_test" filter="s60,test,module_test,pref_test" name="MMF Enhancements Tests" purpose="development">
+ <meta rel="testbuild">
+ <group name="advancedaudiocontroller_tsrc_group"/>
+ </meta>
+ <unit bldFile="mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/group"/>
+ </component>
+ </collection>
+ <collection id="mmserv" name="Multimedia Services" level="specific">
+ <component id="callaudiocontrol" filter="s60" name="Call Audio Control">
+ <unit bldFile="mmserv/callaudiocontrol/group"/>
+ </component>
+ <component id="metadatautility" filter="s60" name="Metadata Utility">
+ <unit bldFile="mmserv/metadatautility/group"/>
+ </component>
+ <component id="radioutility" filter="s60" name="Radio Utility">
+ <unit bldFile="mmserv/radioutility/group"/>
+ </component>
+ <component id="sts" filter="s60" name="System Tone Service" introduced="^4">
+ <unit bldFile="mmserv/sts/group"/>
+ </component>
+ <component id="thumbnailengine" filter="s60" name="Thumbnail Engine" introduced="^2">
+ <unit bldFile="mmserv/thumbnailengine/group"/>
+ </component>
+ <component id="tms" filter="s60" name="Telephony Multimedia Service" introduced="^3">
+ <unit bldFile="mmserv/tms/group"/>
+ </component>
+ <component id="voipaudioservices" filter="s60" name="VoIP Audio Services">
+ <unit bldFile="mmserv/voipaudioservices/group"/>
+ </component>
+ <component id="lib3gpextparser" filter="s60" name="3GP Extension Metadata Parser Library">
+ <unit bldFile="mmserv/metadatautility/3GPExtParserLib_stub/group"/>
+ </component>
+ </collection>
+ <collection id="mmmw_info" name="Multimedia Middleware Info" level="specific">
+ <component id="mmmw_test" filter="s60,test,api_test,pref_test" name="Multimedia Middleware Tests" purpose="development">
+ <unit bldFile="tsrc/group"/>
+ </component>
+ </collection>
+ </package>
</SystemDefinition>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/package_map.xml Fri Aug 06 16:55:00 2010 -0500
@@ -0,0 +1,1 @@
+<PackageMap root="sf" layer="mw"/>