Attempted fix for AknLayout.lag appearing twice in the same location, but with different cases. This is a bit experimental as I'm doing it on a windows machine (case insensitive), so we'll see how we go.
/** Copyright (c) 2008 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: Implementaion of ChspsClientSession class.* For details, see hspsClientSession.h.***/#include <e32svr.h>#include "hsps_builds_cfg.hrh"#include "hspsthememanagement.h"#include "hspsthemeserver.h"#include "hspsclientsession.h"// Standard server startup codestatic TInt StartServer() { const TUidType serverUid(KNullUid,KNullUid,KhspsThemeServerUid3); // ------------------------------------------------------------------------ // EPOC and EKA2 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(KhspsThemeServerName,KNullDesC); if (r!=KErrNone) {#ifdef _hsps_DEBUG_ RDebug::Print(_L("hspsClientSession: server start failed %d"),r);#endif 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; }// -----------------------------------------------------------------------------// RhspsClientSession::Connect// This is the standard retry pattern for server connection// (other items were commented in a header).// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::Connect() { TVersion ver = TVersion(KhspsThemeServerMajorVersionNumber,KhspsThemeServerMinorVersionNumber, KhspsThemeServerBuildVersionNumber); TInt retry=2; for (;;) { TInt r=CreateSession(KhspsThemeServerName, ver, KDefaultMessageSlots); if (r!=KErrNotFound && r!=KErrServerTerminated) { return r; } if (--retry==0) { return r; } r=StartServer(); if (r!=KErrNone && r!=KErrAlreadyExists) { return r; } } }// -----------------------------------------------------------------------------// RhspsClientSession::Close()// Closes the session// (other items were commented in a header).// -----------------------------------------------------------------------------//EXPORT_C void RhspsClientSession::Close() { RSessionBase::Close(); }// ----------------------------------------------------------------------------------------// Client Server functions follow// ----------------------------------------------------------------------------------------// -----------------------------------------------------------------------------// RhspsClientSession::InstallTheme// Installation service// (other items were commented in a header).// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::InstallTheme(TDes8& aResultData, const TDesC& aManifestFileName, TDes8& aHeaderData) { aHeaderData.Zero(); aResultData.Zero(); return SendReceive(EhspsInstallTheme,TIpcArgs(&aResultData, &aManifestFileName, &aHeaderData)); }// -----------------------------------------------------------------------------// RhspsClientSession::InstallNextPhase// Calls for the next phase of the installation// (other items were commented in a header).// -----------------------------------------------------------------------------//EXPORT_C void RhspsClientSession::InstallNextPhase(TDes8& aResultData, TDes8& aHeaderData, TRequestStatus& aStatus) { aHeaderData.Zero(); aResultData.Zero(); TIpcArgs args; args.Set(0, &aResultData ); args.Set(1, &KNullDesC8); args.Set(2, &aHeaderData); SendReceive(EhspsInstallNextPhase, args, aStatus); }// -----------------------------------------------------------------------------// RhspsClientSession::GetListHeaders// Maintenance service, header listing// (other items were commented in a header).// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::GetListHeaders(TDes8& aResultData, const TDesC8& aSearchMaskData, TDes8& aHeaderData) { aHeaderData.Zero(); aResultData.Zero(); return SendReceive(EhspsGetListHeaders, TIpcArgs(&aResultData, &aSearchMaskData, &aHeaderData)); } // -----------------------------------------------------------------------------// RhspsClientSession::GetNextHeader// (other items were commented in a header).// -----------------------------------------------------------------------------//EXPORT_C void RhspsClientSession::GetNextHeader(TDes8& aResultData, TDes8& aHeaderData, TRequestStatus& aStatus) { aHeaderData.Zero(); aResultData.Zero(); TIpcArgs args; args.Set(0, &aResultData ); args.Set(1, &KNullDesC8); args.Set(2, &aHeaderData); SendReceive(EhspsGetNextHeader, args, aStatus); }// -----------------------------------------------------------------------------// RhspsClientSession::SetActiveTheme// Theme activation// (other items were commented in a header).// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::SetActiveTheme(TDes8& aResultData, const TDesC8& aSetMaskData, TDes8& aHeaderData) { aHeaderData.Zero(); aResultData.Zero(); return SendReceive(EhspsSetActiveTheme, TIpcArgs(&aResultData, &aSetMaskData, &aHeaderData)); }// -----------------------------------------------------------------------------// RhspsClientSession::RestoreDefault// Restore defaults// (other items were commented in a header).// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::RestoreDefault(TDes8& aResultData, const TDesC8& aSetMaskData, TDes8& aHeaderData) { aHeaderData.Zero(); aResultData.Zero(); return SendReceive( EhspsRestoreDefault, TIpcArgs(&aResultData, &aSetMaskData, &aHeaderData) ); }// -----------------------------------------------------------------------------// RhspsClientSession::RemoveTheme// Theme removal// (other items were commented in a header).// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::RemoveTheme(TDes8& aResultData, const TDesC8& aSetMaskData) { aResultData.Zero(); return SendReceive(EhspsRemoveTheme, TIpcArgs(&aResultData, &aSetMaskData)); }/* Client Request service */// -----------------------------------------------------------------------------// RhspsClientSession::GetODT// (other items were commented in a header).// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::GetODT( TDes8& aResultData, const ThspsConfiguration& aConfiguration, const TDesC8& aRequestData, TDes& aODTPath) { // Setup packaged input for the service TPckgC<ThspsConfiguration> packagedStruct(aConfiguration); aResultData.Zero(); aODTPath.Zero(); return SendReceive(EhspsGetODT,TIpcArgs(&aResultData, &packagedStruct, &aRequestData, &aODTPath )); }// -----------------------------------------------------------------------------// RhspsClientSession::GetODTUpdate// (other items were commented in a header).// -----------------------------------------------------------------------------//EXPORT_C void RhspsClientSession::GetODTUpdate(TDes8& aResultData, TDes8& aRequestNotifyData, TDes8& aHeaderData, TRequestStatus& aStatus) { aHeaderData.Zero(); aResultData.Zero(); aRequestNotifyData.Zero(); TIpcArgs args; args.Set(0, &aResultData ); args.Set(1, &aRequestNotifyData); args.Set(2, &aHeaderData); SendReceive(EhspsGetODTUpdate, args, aStatus); }// -----------------------------------------------------------------------------// RhspsClientSession::AccessResourceFile// (other items were commented in a header).// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::AccessResourceFile(TDes8& aResultData, const ThspsConfiguration& aConfiguration, const TDesC& aFileName, TInt& aFileHandle) { // Setup packaged input for the service TPckgC<ThspsConfiguration> packagedStruct(aConfiguration); // Setup packaged output from the service TPckgBuf<TInt> packagedFileHandle(0); aResultData.Zero(); //IPC slots and contents: //#0 (unused?) //#1 uids in a struct //#2 the file name to open //#3 the handle to the RFile that will be filled in by the server //The return value contains the handle to the RFs that can be used to access the file TInt fileServerHandle = SendReceive( EhspsAccessResourceFile, TIpcArgs(&aResultData, &packagedStruct, &aFileName, &packagedFileHandle) ); // Set received file handle aFileHandle=packagedFileHandle(); return fileServerHandle; }// -----------------------------------------------------------------------------// RhspsClientSession::CopyResourceFiles// (other items were commented in a header).// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::CopyResourceFiles( TDes8& aResultData, TDesC& aODTPath, TDesC& aDestinationPath ) { aResultData.Zero(); return SendReceive( EhspsCopyResources, TIpcArgs( &aResultData, &aODTPath, &aDestinationPath )); }/* Generic functions */// -----------------------------------------------------------------------------// RhspsClientSession::CancelRequest// (other items were commented in a header).// -----------------------------------------------------------------------------//EXPORT_C void RhspsClientSession::CancelRequest(TInt aCancelRequestMessage, TDes8& aResultData, TInt aAppUid ) { aResultData.Zero(); SendReceive(aCancelRequestMessage, TIpcArgs(&aResultData, aAppUid )); }// -----------------------------------------------------------------------------// RhspsClientSession::GetNextHeader// (other items were commented in a header).// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::GetNextHeader( TDes8& aResultData, TDes8& aHeaderData ) { aHeaderData.Zero(); aResultData.Zero(); TIpcArgs args; args.Set( 0, &aResultData ); args.Set( 1, &KNullDesC8 ); args.Set( 2, &aHeaderData ); return SendReceive( EhspsGetNextHeader, args ); }// -----------------------------------------------------------------------------// RhspsClientSession::AddPlugin// Adds a plugin configuration into the defined application configuration// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::AddPlugin( TDes8& aResultData, const ThpsParamAddPlugin& aParams, TInt& aNewPluginId ) { aResultData.Zero(); TPckgC<ThpsParamAddPlugin> packagedStruct(aParams); TPckg<TInt> idDes( aNewPluginId ); return SendReceive(EhspsAddPlugin, TIpcArgs(&aResultData, &packagedStruct, &idDes)); }// -----------------------------------------------------------------------------// RhspsClientSession::RemovePlugin// Removes a plugin configuration from the defined application configuration// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::RemovePlugin( TDes8& aResultData, const ThpsParamRemovePlugin& aParams ) { aResultData.Zero(); TPckgC<ThpsParamRemovePlugin> packagedStruct(aParams); return SendReceive(EhspsRemovePlugin, TIpcArgs(&aResultData, &packagedStruct)); }// -----------------------------------------------------------------------------// RhspsClientSession::SetActivePlugin// Set plugin configuration active.// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::SetActivePlugin( TDes8& aResultData, const ThpsParamSetActivePlugin& aParams ) { aResultData.Zero(); TPckgC<ThpsParamSetActivePlugin> packagedStruct( aParams ); return SendReceive( EhspsSetActivePlugin, TIpcArgs( &aResultData, &packagedStruct ) ); }// -----------------------------------------------------------------------------// RhspsClientSession::ReplacePlugin// Replaces a plugin configuration in the active application configuration// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::ReplacePlugin( TDes8& aResultData, const ThspsParamReplacePlugin& aParams ) { aResultData.Zero(); TPckgC<ThspsParamReplacePlugin> packagedStruct(aParams); return SendReceive(EhspsReplacePlugin, TIpcArgs(&aResultData, &packagedStruct)); }// -----------------------------------------------------------------------------// RhspsClientSession::GetPluginOdt// Returns odt path accoring given uid// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::GetPluginOdt( TDes8& aResultData, const ThspsParamGetPluginOdt& aParams, TDes& aOdtPath ) { aResultData.Zero(); TPckgC<ThspsParamGetPluginOdt> packagedStruct(aParams); return SendReceive( EhspsGetPluginOdt, TIpcArgs(&aResultData, &packagedStruct, &aOdtPath) ); }// -----------------------------------------------------------------------------// RhspsClientSession::SetPluginSettings// Personalizes settings in a plugin configuration// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::SetPluginSettings( TDes8& aResultData, TDes8& aSearchMaskData, ThspsParamSetPluginSettings aParams, TDes8& aDomData ) { aResultData.Zero(); TPckgC<ThspsParamSetPluginSettings> packagedStruct(aParams); return SendReceive(EhspsSetPluginSettings, TIpcArgs( &aResultData, &aSearchMaskData, &packagedStruct, &aDomData )); }// -----------------------------------------------------------------------------// RhspsClientSession::MovePlugins// Updates plugin positions within a configuration// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::MovePlugins( TDes8& aResultData, const ThpsParamMovePlugins& aParams ) { aResultData.Zero(); TPckgC<ThpsParamMovePlugins> packagedStruct(aParams); return SendReceive(EhspsMovePlugins, TIpcArgs(&aResultData, &packagedStruct)); }// -----------------------------------------------------------------------------// RhspsClientSession::SetConfState// Updates configuration state// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::SetConfState( TDes8& aResultData, const ThspsParamSetConfState& aParams ) { aResultData.Zero(); TPckgC<ThspsParamSetConfState> packagedStruct( aParams ); return SendReceive( EhspsSetConfState, TIpcArgs( &aResultData, &packagedStruct ) ); }// -----------------------------------------------------------------------------// RhspsClientSession::ReinstallConf// Updates configuration state// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::ReinstallConf( TDes8& aResultData, const ThspsParamReinstallConf& aParams ) { aResultData.Zero(); TPckgC<ThspsParamReinstallConf> packagedStruct( aParams ); return SendReceive( EhspsReinstallConf, TIpcArgs( &aResultData, &packagedStruct ) ); }// -----------------------------------------------------------------------------// RhspsClientSession::RestoreActiveAppConf// Restores active application configuration// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::RestoreActiveAppConf( TDes8& aResultData, const ThspsParamRestoreActiveAppConf& aParams ) { aResultData.Zero(); TPckgC<ThspsParamRestoreActiveAppConf> packagedStruct( aParams ); return SendReceive( EhspsRestoreActiveAppConf, TIpcArgs( &aResultData, &packagedStruct ) ); }// -----------------------------------------------------------------------------// RhspsClientSession::RestoreConfigurations// -----------------------------------------------------------------------------//EXPORT_C TInt RhspsClientSession::RestoreConfigurations( TDes8& aResultData, const ThspsParamRestoreConfigurations& aParams ) { aResultData.Zero(); TPckgC<ThspsParamRestoreConfigurations> packagedStruct( aParams ); return SendReceive( EhspsRestoreConfigurations, TIpcArgs( &aResultData, &packagedStruct ) ); }// end of file