diff -r b31261fd4e04 -r ccd8e69b5392 mmshplugins/mmshaoplugin/src/musaoplugin.cpp --- a/mmshplugins/mmshaoplugin/src/musaoplugin.cpp Tue Feb 02 00:09:07 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,263 +0,0 @@ -/* -* Copyright (c) 2005-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: Main plugin class -* -*/ - - -#include "musresourceproperties.h" -#include "mussesseioninformationapi.h" -#include "mussettingskeys.h" -#include "mussessionproperties.h" -#include "mussettings.inl" -#include "musaoplugin.h" -#include "mustsypropertymonitor.h" -// Enable the below line if Kodiak Ptt has to be monitered -// #include "muspttcallmonitor.h" -#include "muspropertymonitor.h" -#include "mustsypropertymonitor.h" -#include "muslogger.h" - -#include -#include -#include -#include - -using namespace NMusSessionInformationApi; - -// ----------------------------------------------------------------------------- -// Symbian two-phase constructor. -// ----------------------------------------------------------------------------- -// -CMusAoPlugin* CMusAoPlugin::NewL() - { - MUS_LOG( "mus: [MUSAO] -> CMusAoPlugin::NewL" ) - CMusAoPlugin* self = new (ELeave) CMusAoPlugin(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - MUS_LOG( "mus: [MUSAO] <- CMusAoPlugin::NewL" ) - return self; - } - -// ----------------------------------------------------------------------------- -// C++ constructor. -// ----------------------------------------------------------------------------- -// -CMusAoPlugin::CMusAoPlugin() : - CAlwaysOnlineEComInterface() - { - } - -// ----------------------------------------------------------------------------- -// Symbian second-phase constructor. -// ----------------------------------------------------------------------------- -// -void CMusAoPlugin::ConstructL() - { - MUS_LOG( "mus: [MUSAO] -> CMusAoPlugin::ConstructL" ) - FeatureManager::InitializeLibL(); - TBool support = FeatureManager::FeatureSupported( KFeatureIdMultimediaSharing ); - FeatureManager::UnInitializeLib(); - if ( support ) - { - DefinePropertiesL(); - User::LeaveIfError( iServer.Connect() ); - User::LeaveIfError( iPhone.Open( iServer, KMmTsyPhoneName() ) ); - iTsyPropertyMonitor = CMusTsyPropertyMonitor::NewL(iPhone); - iPropertyMonitor = CMusPropertyMonitor::NewL(); - // Enable the below line if Kodiak Ptt has to be monitered - // iPttCallMonitor = CMusPttCallMonitor::NewL(*iLineMonitor); - } - MUS_LOG( "mus: [MUSAO] <- CMusAoPlugin::ConstructL" ) - } - -// ----------------------------------------------------------------------------- -// C++ destructor. -// ----------------------------------------------------------------------------- -// -CMusAoPlugin::~CMusAoPlugin() - { - MUS_LOG( "-> CMusAoPlugin::~CMusAoPlugin" ) - // should never come here, because service should always be on - delete iPropertyMonitor; - delete iTsyPropertyMonitor; - // Enable the below line if Kodiak Ptt has to be monitered - // delete iPttCallMonitor; - DeleteProperties(); - iPhone.Close(); - iServer.Close(); - MUS_LOG( "<- CMusAoPlugin::~CMusAoPlugin" ) - } - - -// ----------------------------------------------------------------------------- -// CMusAoPlugin::DefineResourcePropertiesL() -// Note : Ignore Define Errors . Because if define fails for sure Set -// will fail too . But there are some cases in Define Error should -// be ignored like KErrAlreadyExists , KErrPersmissionDenied.So It -// could be better if we dont care Define Error but care about Set Err. -// ----------------------------------------------------------------------------- -// -void CMusAoPlugin::DefinePropertiesL() - { - MUS_LOG( "mus: [MUSAO] -> CMusAoPlugin::DefineResourceProperties" ) - // define resource properties - // they need to be defined here to make them exist always - // Read from cenrep key about the availability of camera and keypad - // if the availability is dynamic then define a key else no. - MusSettingsKeys::TAvailability camera = MusSettingsKeys::EAvailabilityStatic; - MusSettingsKeys::TAvailability keypad = MusSettingsKeys::EAvailabilityStatic ; - MultimediaSharingSettings::ResourceAvailability(camera,keypad); - if( camera == MusSettingsKeys::EAvailabilityDynamic ) - { - DefinePropertyL(NMusResourceApi::KCameraAvailability, - RProperty::EInt,( TInt ) NMusResourceApi::ENotAvailable); - } - if( keypad == MusSettingsKeys::EAvailabilityDynamic ) - { - DefinePropertyL(NMusResourceApi::KKeypadAvailability, - RProperty::EInt,( TInt ) NMusResourceApi::ENotAvailable); - } - DefinePropertyL(NMusResourceApi::KCameraInformation, - RProperty::EInt,( TInt ) NMusResourceApi::EUsePrimaryCamera); - DefinePropertyL(NMusSessionInformationApi::KMusCallEvent, - RProperty::EInt,( TInt ) NMusSessionInformationApi::ENoCall); - DefinePropertyL(NMusSessionInformationApi::KMusCallCount,RProperty::EInt,0); - _LIT(KEmptyTelNumber,""); - DefinePropertyL(NMusSessionInformationApi::KMusTelNumber, - RProperty::EText,KEmptyTelNumber); - DefinePropertyL(NMusSessionInformationApi::KMUSForbidden, - RProperty::EInt,( TInt ) NMusSessionInformationApi::EMUSAllowed); - DefinePropertyL(NMusSessionInformationApi::KMusCallDirection, - RProperty::EInt,( TInt ) NMusSessionInformationApi::ENoDirection); - DefinePropertyL(NMusSessionInformationApi::KMUSPrivacy, - RProperty::EInt,( TInt ) NMusSessionInformationApi::EPrivacyOff); - DefinePropertyL(KMusClirSetting, - RProperty::EInt,( TInt ) ESendOwnNumber); - - - MUS_LOG( "mus: [MUSAO] <- CMusAoPlugin::DefineResourceProperties" ) - } - -// ----------------------------------------------------------------------------- -// CMusAoPlugin::DefineProperty() -// ----------------------------------------------------------------------------- -// -void CMusAoPlugin::DefinePropertyL(TInt aKey,RProperty::TType aType,TInt aVal) - { - MUS_LOG( "mus: [MUSAO] -> CMusAoPlugin::DefinePropertyL( intValue )" ) - - TInt error = RProperty::Define( NMusResourceApi::KCategoryUid, - aKey, - aType ); - MUS_LOG2( "mus: [MUSAO] Key=%d defining tried, return=%d", aKey, error ) - - if ( error == KErrNone ) - { - error = RProperty::Set( NMusResourceApi::KCategoryUid, aKey, aVal ); - MUS_LOG2( "mus: [MUSAO] RProperty value %d set, return = %d", - aVal, error ) - User::LeaveIfError( error ); - } - else - { - MUS_LOG( "mus: [MUSAO] Defining failed, do not set value" ) - } - - MUS_LOG( "mus: [MUSAO] <- CMusAoPlugin::DefinePropertyL( intValue )" ) - } - -// ----------------------------------------------------------------------------- -// CMusAoPlugin::DefineProperty() -// ----------------------------------------------------------------------------- -// -void CMusAoPlugin::DefinePropertyL( TInt aKey, - RProperty::TType aType, - const TDesC& aVal ) - { - MUS_LOG( "mus: [MUSAO] -> CMusAoPlugin::DefinePropertyL( DesCValue )" ) - - TInt error = RProperty::Define( NMusResourceApi::KCategoryUid, - aKey, - aType ); - MUS_LOG2( "mus: [MUSAO] Key=%d defining tried, return=%d", aKey, error ) - - if ( error == KErrNone ) - { - error = RProperty::Set( NMusResourceApi::KCategoryUid, aKey, aVal); - MUS_LOG_TDESC( "mus: [MUSAO] Tried to set RProperty value: ", aVal ) - MUS_LOG1("mus: [MUSAO] return value = %d",error ) - User::LeaveIfError( error ); - } - else - { - MUS_LOG( "mus: [MUSAO] Defining failed, do not set value" ) - } - - MUS_LOG( "mus: [MUSAO] <- CMusAoPlugin::DefinePropertyL( DesCValue )" ) - } - -// ----------------------------------------------------------------------------- -// CMusAoPlugin::DeleteResourceProperties() -// Note : There is no need of caring the return value in deleting -// This will be called when AO Plugin destroyed which is rare to happen -// Any unwanted deletion of AO Plugin should leave some PS Keys open. -// But this is OK if we ignore KErrAlreadyExists while defining next time. -// ----------------------------------------------------------------------------- -// -void CMusAoPlugin::DeleteProperties() - { - MUS_LOG( "mus: [MUSAO] -> CMusAoPlugin::DeleteResourcePropertiesL" ) - // Delete resource properties - // they need to be defined here to make them exist always - DeleteProperty(NMusResourceApi::KCameraAvailability); - DeleteProperty(NMusResourceApi::KKeypadAvailability); - DeleteProperty(NMusResourceApi::KCameraInformation); - DeleteProperty(NMusSessionInformationApi::KMusCallEvent); - DeleteProperty(NMusSessionInformationApi::KMusCallCount); - DeleteProperty(NMusSessionInformationApi::KMusTelNumber); - DeleteProperty(NMusSessionInformationApi::KMUSForbidden); - DeleteProperty(NMusSessionInformationApi::KMusCallDirection); - DeleteProperty(NMusSessionInformationApi::KMUSPrivacy); - DeleteProperty(KMusClirSetting); - MUS_LOG( "mus: [MUSAO] <- CMusAoPlugin::DeleteResourcePropertiesL" ) - } - -// ----------------------------------------------------------------------------- -// CMusAoPlugin::DeleteProperty() -// ----------------------------------------------------------------------------- -// -void CMusAoPlugin::DeleteProperty(TInt aKey) - { - TInt retVal = RProperty::Delete( NMusResourceApi::KCategoryUid,aKey); - MUS_LOG2( "mus: [MUSAO] RProperty::Delete Type=%d return=%d",\ - aKey, retVal ) - } - -// ----------------------------------------------------------------------------- -// CMusAoPlugin::HandleServerCommandL -// CallBack from base class. -// ----------------------------------------------------------------------------- -// -TAny* CMusAoPlugin::HandleServerCommandL( TInt /*aCommand*/, - TDesC8* /*aParameters*/ ) - { - MUS_LOG( "mus: [MUSAO] -> CMusAoPlugin::HandleServerCommandL" ) - MUS_LOG( "mus: [MUSAO] <- CMusAoPlugin::HandleServerCommandL: KErrNone" ) - return &iError;; - } - - -// End of file