diff -r 000000000000 -r 2e3d3ce01487 commonappservices/alarmserver/Test/ConsoleANTestClient.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commonappservices/alarmserver/Test/ConsoleANTestClient.cpp Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,379 @@ +// Copyright (c) 1999-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: +// + +#include +#include +#include "consoleantestclient.h" + +EXPORT_C RANTestClient::RANTestClient() + : iAlarmPtr(0, 0, 0), + iSoundStartIdPtr(0, 0, 0), + iSoundStopIdPtr(0, 0, 0), + iVisibleIdPtr(0, 0, 0), + iVisibleBoolPtr(0, 0, 0), + iStateIdPtr(0, 0, 0), + iStateIntPtr(0, 0, 0), + iDeleteIdPtr(0, 0, 0) + { + } + +/** +Connect the the Console Alarm Alert Server. The Console Alarm Alert Server must be running +otherwise the method will fail. + +@return KErrNone on succcess, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::Connect() + { + const TVersion KVersion(KASAltVersionMajor, KASAltVersionMinor, KASAltVersionBuild); + return CreateSession(KAlarmAlertServerName, KVersion); + } + +/** +Acknowledges the latest notifying alarm. Do not use this method if Console Alarm Alert Server +is in multiple alarm mode. +*/ + +EXPORT_C void RANTestClient::AcknowledgeAlarm() + { + SendReceive(EASAltTestOpCodeAcknowledgeAlarm); + } + +/** +Retrieves any data attached to the latest notifying alarm. Do not use this method if Console Alarm Alert Server +is in multiple alarm mode. +@param buf buffer that will contain the data. This buffer must be big enough to contain all the data in the attachement. +*/ + +EXPORT_C void RANTestClient::GetAttachment(TDes8& buf) + { + TIpcArgs args(buf.MaxLength(),&buf); + SendReceive(EASAltTestOpCodeGetAttachment, args); + } + +/** +Queries wether or not Console Alarm Alert Server is outputting to the console. Do not use this method if Console Alarm Alert Server +is in multiple alarm mode. + +@return ETrue if outputting, EFalse if not. +*/ + +EXPORT_C TBool RANTestClient::IsNotifying() + { + TPckgBuf package; + TIpcArgs args(&package); + SendReceive(EASAltTestOpCodeGetIsNotifying, args); + + return package(); + } + +/** +Switches the Console Alarm Alert Server into extended mode giving access to the new functionality. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::SetExtendedMode() const + { + return Send(EASAltTestOpCodeSetExtendedMode); + } + +/** +Returns the Console Alarm Alert Server from extended mode. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::UnsetExtendedMode() const + { + return Send(EASAltTestOpCodeUnsetExtendedMode); + } + +/** +Sets the time returned by the Console Alarm Alert Server when sent EASAltOpCodeGetUserTime. + +@param aTime, new time to be set. +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::SetUserTime(const TTime& aTime) const + { + TPckgC pTime(aTime); + TIpcArgs args(&pTime); + + return SendReceive(EASAltTestOpCodeSetUserTime, args); + } + +/** +Sets the value returned by the Console Alarm Alert Server when sent EASAltOpCodeGetMaxAlarms. +If this is not set it defaults to 1. The Alarm Server will query this value when connecting to the Console Alarm Alert Server, if you +want it set differently you need to call this method before the Alarm Server is started. + +@param aMax, new max alarms value to be set. +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::SetMaxAlarms(const TInt aMax) const + { + TPckgC pMax(aMax); + TIpcArgs args(&pMax); + + return SendReceive(EASAltTestOpCodeSetMaxAlarms, args); + } + +/** +Asynchronously notifies the client when a EASAltOpCodeSetAlarm is received by the Console Alarm Alert Server. + +@param aAlarm, to be filled in with the data of the alarm attached to the message. +@param aFullname, the owner of the alarm. +@param aSink, any data attached to the alarm. This descriptor must be big enough to contain all data or no data will be returned. +@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeSetAlarm is received. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::NotifyOnAlarm(TASShdAlarm& aAlarm, TFullName& aFullname, TDes8& aSink, TRequestStatus& aStatus) + { + TIpcArgs args(&iAlarmPtr, &aFullname, &aSink, 0); + + iAlarmPtr.Set(reinterpret_cast(&aAlarm), sizeof(TASShdAlarm), sizeof(TASShdAlarm)); + + SendReceive(EASAltTestOpCodeNotifyOnAlarm, args, aStatus); + return KErrNone; + } + +/** +Asynchronously notifies the client when a EASAltOpCodeSetAlarm is received by the Console Alarm Alert Server. + +@param aAlarm, to be filled in with the data of the alarm attached to the message. +@param aFullname, the owner of the alarm. +@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeSetAlarm is received. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::NotifyOnAlarm(TASShdAlarm& aAlarm, TFullName& aFullname, TRequestStatus& aStatus) + { + TIpcArgs args(&iAlarmPtr, &aFullname, 0, 0); + + iAlarmPtr.Set(reinterpret_cast(&aAlarm), sizeof(TASShdAlarm), sizeof(TASShdAlarm)); + + SendReceive(EASAltTestOpCodeNotifyOnAlarm, args, aStatus); + return KErrNone; + } + +/** +Asynchronously notifies the client when a EASAltOpCodeSetAlarm is received by the Console Alarm Alert Server. + +@param aAlarm, to be filled in with the data of the alarm attached to the message. +@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeSetAlarm is received. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::NotifyOnAlarm(TASShdAlarm& aAlarm, TRequestStatus& aStatus) + { + TIpcArgs args(&iAlarmPtr, 0, 0, 0); + + iAlarmPtr.Set(reinterpret_cast(&aAlarm), sizeof(TASShdAlarm), sizeof(TASShdAlarm)); + + SendReceive(EASAltTestOpCodeNotifyOnAlarm, args, aStatus); + return KErrNone; + } + +/** +Asynchronously notifies the client when a EASAltOpCodeStartPlayingSound is received by the Console Alarm Alert Server. + +@param aId, id of alarm attached to the message. +@param aFilename, filename of sound to play. This descriptor must be big enough to contain the entire filename or no filename will be returned. +@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeStartPlayingSound is received. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::NotifyOnSoundStart(TAlarmId& aId, TDes& aFilename, TRequestStatus& aStatus) + { + TIpcArgs args(&iSoundStartIdPtr, &aFilename); + iSoundStartIdPtr.Set(reinterpret_cast(&aId), sizeof(TAlarmId), sizeof(TAlarmId)); + + SendReceive(EASAltTestOpCodeNotifyOnSoundStart, args, aStatus); + return KErrNone; + } + +/** +Asynchronously notifies the client when a EASAltOpCodeStopPlayingSound is received by the Console Alarm Alert Server. + +@param aId, id of alarm attached to the message. +@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeStopPlayingSound is received. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::NotifyOnSoundStop(TAlarmId& aId, TRequestStatus& aStatus) + { + TIpcArgs args(&iSoundStopIdPtr); + iSoundStopIdPtr.Set(reinterpret_cast(&aId), sizeof(TAlarmId), sizeof(TAlarmId)); + + SendReceive(EASAltTestOpCodeNotifyOnSoundStop, args, aStatus); + return KErrNone; + } + +/** +Asynchronously notifies the client when a EASAltOpCodeVisible is received by the Console Alarm Alert Server. + +@param aId, id of alarm attached to the message. +@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeVisible is received. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::NotifyOnVisible(TAlarmId& aId, TBool& aVisible, TRequestStatus& aStatus) + { + TIpcArgs args(&iVisibleIdPtr, &iVisibleBoolPtr); + iVisibleIdPtr.Set(reinterpret_cast(&aId), sizeof(TAlarmId), sizeof(TAlarmId)); + iVisibleBoolPtr.Set(reinterpret_cast(&aVisible), sizeof(TBool), sizeof(TBool)); + + SendReceive(EASAltTestOpCodeNotifyOnVisible, args, aStatus); + return KErrNone; + } + +/** +Asynchronously notifies the client when a EASAltOpCodeSetState is received by the Console Alarm Alert Server. + +@param aId, id of alarm attached to the message. +@param aState, new state of alarm. +@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeSetState is received. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::NotifyOnState(TAlarmId& aId, TInt& aState, TRequestStatus& aStatus) + { + TIpcArgs args(&iStateIdPtr, &iStateIntPtr); + iStateIdPtr.Set(reinterpret_cast(&aId), sizeof(TAlarmId), sizeof(TAlarmId)); + iStateIntPtr.Set(reinterpret_cast(&aState), sizeof(TInt), sizeof(TInt)); + + SendReceive(EASAltTestOpCodeNotifyOnState, args, aStatus); + return KErrNone; + } + +/** +Asynchronously notifies the client when a EASAltOpCodeSetState is received by the Console Alarm Alert Server. + +@param aId, id of alarm attached to the message. +@param aStatus, TRequestStatus that will be completed when a EASAltOpCodeSetState is received. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::NotifyOnDelete(TAlarmId& aId, TRequestStatus& aStatus) + { + TIpcArgs args(&iDeleteIdPtr); + iDeleteIdPtr.Set(reinterpret_cast(&aId), sizeof(TAlarmId), sizeof(TAlarmId)); + + SendReceive(EASAltTestOpCodeNotifyOnDelete, args, aStatus); + return KErrNone; + } + +/** +Instructs the Console Alarm Alert Server to snooze the alarm for the specified amount of time. + +@param aId, id of alarm to snooze. This doesn't have to be a valid id. +@param aTime, time to snooze to in UTC. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::SnoozeAlarm(const TAlarmId& aId, const TTime& aTime) const + { + TPckgC pTime(aTime); + TIpcArgs args(aId, &pTime); + return SendReceive(EASAltTestOpCodeResponseSnoozeAlarm, args); + } + +/** +Instructs the Console Alarm Alert Server to silence the alarm. + +@param aId, id of alarm to silence. This doesn't have to be a valid id. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::SilenceAlarm(const TAlarmId& aId) const + { + TIpcArgs args(aId); + return SendReceive(EASAltTestOpCodeResponseSilenceAlarm, args); + } + +/** +Instructs the Console Alarm Alert Server to acknowledge the alarm. + +@param aId, id of alarm to acknowledge. This doesn't have to be a valid id. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::AcknowledgeAlarm(const TAlarmId& aId) const + { + TIpcArgs args(aId); + return SendReceive(EASAltTestOpCodeResponseAcknowledgeAlarm, args); + } + +/** +Instructs the Console Alarm Alert Server to acknowledge all currently notifying alarms. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::AcknowledgeAll() const + { + return SendReceive(EASAltTestOpCodeResponseAcknowledgeAll); + } + +/** +Instructs the Console Alarm Alert Server to silence the alarm. + +@param aId, id of alarm to silence. This doesn't have to be a valid id. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::PauseSoundForAlarm(const TAlarmId& aId, const TTime& aTime) const + { + TPckgC pTime(aTime); + TIpcArgs args(aId, &pTime); + + return SendReceive(EASAltTestOpCodeResponsePauseSound, args); + } + +/** +Cancels all outstanding notifications for this session. + +@return KErrNone on success, a system wide error code otherwise. +*/ + +EXPORT_C TInt RANTestClient::CancelNotifications() + { + return Send(EASAltTestOpCodeCancelNotifications); + } + + +#ifndef EKA2 +GLDEF_C TInt E32Dll(TDllReason /*aReason*/) + { + return KErrNone; + } +#endif