clock/clockmw/clockalarms/src/alarmclient.cpp
changeset 45 b6db4fd4947b
parent 18 c198609911f9
child 57 bb2d3e476f29
equal deleted inserted replaced
23:fd30d51f876b 45:b6db4fd4947b
    16 *
    16 *
    17 */
    17 */
    18 
    18 
    19 // System includes
    19 // System includes
    20 #include <e32cmn.h>
    20 #include <e32cmn.h>
    21 #include <QDebug>
       
    22 
       
    23 // User includes
    21 // User includes
    24 #include "alarmclient.h"
    22 #include "alarmclient.h"
    25 #include "alarmlistener.h"
    23 #include "alarmlistener.h"
    26 
    24 
    27 /*!
    25 /*!
    32 	Default constructor.
    30 	Default constructor.
    33  */
    31  */
    34 AlarmClient::AlarmClient(QObject* parent)
    32 AlarmClient::AlarmClient(QObject* parent)
    35 :QObject(parent),
    33 :QObject(parent),
    36 mListener(0)
    34 mListener(0)
    37 {
    35 {	
    38 	qDebug("clock: AlarmClient::AlarmClient() -->");
       
    39 
       
    40 	// Connect to the alarm server.
    36 	// Connect to the alarm server.
    41 	User::LeaveIfError(mAlarmSrvSession.Connect());
    37 	User::LeaveIfError(mAlarmSrvSession.Connect());
    42 
       
    43 	qDebug("clock: AlarmClient::AlarmClient() - Connection done, looks ok.");
       
    44 
       
    45 	// Construct the listener, but do not start it.
    38 	// Construct the listener, but do not start it.
    46 	mListener = new AlarmListener(this, mAlarmSrvSession);
    39 	mListener = new AlarmListener(this, mAlarmSrvSession);
    47 
       
    48 	qDebug("clock: AlarmClient::AlarmClient() <--");
       
    49 }
    40 }
    50 
    41 
    51 /*!
    42 /*!
    52 	Destructor.
    43 	Destructor.
    53  */
    44  */
    54 AlarmClient::~AlarmClient()
    45 AlarmClient::~AlarmClient()
    55 {
    46 {
    56 	qDebug("clock: AlarmClient::~AlarmClient() -->");
       
    57 
    47 
    58 	if (mListener) {
    48 	if (mListener) {
    59 		mListener->stop();
    49 		mListener->stop();
    60 		delete mListener;
    50 		delete mListener;
    61 		mListener = 0;
    51 		mListener = 0;
    62 	}
    52 	}
    63 	mAlarmSrvSession.Close();
    53 	mAlarmSrvSession.Close();
    64 
       
    65 	qDebug("clock: AlarmClient::~AlarmClient() <--");
       
    66 }
    54 }
    67 
    55 
    68 /*!
    56 /*!
    69 	Returns the list of alarms currently set on the phone.
    57 	Returns the list of alarms currently set on the phone.
    70 
    58 
    71 	\param alarmList Reference to a list of alarms.
    59 	\param alarmList Reference to a list of alarms.
    72  */
    60  */
    73 void AlarmClient::getAlarmList(QList<AlarmInfo>& alarmList)
    61 void AlarmClient::getAlarmList(QList<AlarmInfo>& alarmList)
    74 {
    62 {
    75 	qDebug() << "clock: AlarmClient::getAlarmList -->";
       
    76 
       
    77 	// This will hold the alarm ids returned from alarm server.
    63 	// This will hold the alarm ids returned from alarm server.
    78 	RArray<TAlarmId> alarmIdArray;
    64 	RArray<TAlarmId> alarmIdArray;
    79 	AlarmInfo alarmInfo;
    65 	AlarmInfo alarmInfo;
    80 	TASShdAlarm tempSharedAlarm;
    66 	TASShdAlarm tempSharedAlarm;
    81 
    67 
   133 			alarmList.append(alarmInfo);
   119 			alarmList.append(alarmInfo);
   134 		}
   120 		}
   135 	}
   121 	}
   136 	// Cleanup.
   122 	// Cleanup.
   137 	alarmIdArray.Close();
   123 	alarmIdArray.Close();
   138 
       
   139 	qDebug() << "clock: AlarmClient::getAlarmList <--";
       
   140 }
   124 }
   141 
   125 
   142 /*!
   126 /*!
   143 	Sets a new alarm with the alarmserver.
   127 	Sets a new alarm with the alarmserver.
   144  */
   128  */
   145 void AlarmClient::setAlarm(AlarmInfo& alarmInfo)
   129 void AlarmClient::setAlarm(AlarmInfo& alarmInfo)
   146 {
   130 {
   147 	qDebug() << "clock: AlarmClient::setAlarm -->";
       
   148 
       
   149 	// Get the current home time
   131 	// Get the current home time
   150 	TTime homeTime;
   132 	TTime homeTime;
   151 	homeTime.HomeTime();
   133 	homeTime.HomeTime();
   152 	TDateTime homeDateTime = homeTime.DateTime();
   134 	TDateTime homeDateTime = homeTime.DateTime();
   153 
   135 
   220 		QDate alarmDate(
   202 		QDate alarmDate(
   221 		nextDueDateTime.Year(),nextDueDateTime.Month()+1,nextDueDateTime.Day()+1);
   203 		nextDueDateTime.Year(),nextDueDateTime.Month()+1,nextDueDateTime.Day()+1);
   222 
   204 
   223 		alarmInfo.alarmDateTime = alarmDate;
   205 		alarmInfo.alarmDateTime = alarmDate;
   224 	}
   206 	}
   225 
       
   226 	qDebug() << "clock: AlarmClient::setAlarm <--";
       
   227 }
   207 }
   228 
   208 
   229 void AlarmClient::setAlarmState(TAlarmState state, AlarmState& alarmState)
   209 void AlarmClient::setAlarmState(TAlarmState state, AlarmState& alarmState)
   230 {
   210 {
   231 	qDebug() << "clock: AlarmClient::setAlarmState -->";
       
   232 
       
   233 	switch (state) {
   211 	switch (state) {
   234 		case EAlarmStateInPreparation:
   212 		case EAlarmStateInPreparation:
   235 			alarmState = InPreparation;
   213 			alarmState = InPreparation;
   236 			break;
   214 			break;
   237 		case EAlarmStateQueued:
   215 		case EAlarmStateQueued:
   251 			break;
   229 			break;
   252 		default:
   230 		default:
   253 			break;
   231 			break;
   254 	}
   232 	}
   255 
   233 
   256 	qDebug() << "clock: AlarmClient::setAlarmState <--";
       
   257 }
   234 }
   258 
   235 
   259 void AlarmClient::setAlarmState(AlarmState state, TAlarmState& alarmState)
   236 void AlarmClient::setAlarmState(AlarmState state, TAlarmState& alarmState)
   260 {
   237 {
   261 	qDebug() << "clock: AlarmClient::setAlarmState -->";
       
   262 
       
   263 	switch (state) {
   238 	switch (state) {
   264 		case InPreparation:
   239 		case InPreparation:
   265 			alarmState = EAlarmStateInPreparation;
   240 			alarmState = EAlarmStateInPreparation;
   266 			break;
   241 			break;
   267 		case Queued:
   242 		case Queued:
   280 			alarmState = EAlarmStateNotified;
   255 			alarmState = EAlarmStateNotified;
   281 			break;
   256 			break;
   282 		default:
   257 		default:
   283 			break;
   258 			break;
   284 	}
   259 	}
   285 
       
   286 	qDebug() << "clock: AlarmClient::setAlarmState <--";
       
   287 }
   260 }
   288 
   261 
   289 void AlarmClient::setAlarmRepeatType(
   262 void AlarmClient::setAlarmRepeatType(
   290 		TAlarmRepeatDefinition repeat, AlarmRepeatType& repeatType)
   263 		TAlarmRepeatDefinition repeat, AlarmRepeatType& repeatType)
   291 {
   264 {
   292 	qDebug() << "clock: AlarmClient::setAlarmRepeatType -->";
       
   293 
       
   294 	switch (repeat) {
   265 	switch (repeat) {
   295 		case EAlarmRepeatDefintionRepeatOnce:
   266 		case EAlarmRepeatDefintionRepeatOnce:
   296 			repeatType = Once;
   267 			repeatType = Once;
   297 			break;
   268 			break;
   298 		case EAlarmRepeatDefintionRepeatDaily:
   269 		case EAlarmRepeatDefintionRepeatDaily:
   305 			repeatType = Weekly;
   276 			repeatType = Weekly;
   306 			break;
   277 			break;
   307 		default:
   278 		default:
   308 			break;
   279 			break;
   309 	}
   280 	}
   310 
       
   311 	qDebug() << "clock: AlarmClient::setAlarmRepeatType <--";
       
   312 }
   281 }
   313 
   282 
   314 void AlarmClient::setAlarmRepeatType(
   283 void AlarmClient::setAlarmRepeatType(
   315 		AlarmRepeatType repeat, TAlarmRepeatDefinition& repeatType)
   284 		AlarmRepeatType repeat, TAlarmRepeatDefinition& repeatType)
   316 {
   285 {
   317 	qDebug() << "clock: AlarmClient::setAlarmRepeatType -->";
       
   318 
       
   319 	switch (repeat) {
   286 	switch (repeat) {
   320 		case Once:
   287 		case Once:
   321 			repeatType = EAlarmRepeatDefintionRepeatOnce;
   288 			repeatType = EAlarmRepeatDefintionRepeatOnce;
   322 			break;
   289 			break;
   323 		case Daily:
   290 		case Daily:
   330 			repeatType = EAlarmRepeatDefintionRepeatWeekly;
   297 			repeatType = EAlarmRepeatDefintionRepeatWeekly;
   331 			break;
   298 			break;
   332 		default:
   299 		default:
   333 			break;
   300 			break;
   334 	}
   301 	}
   335 
       
   336 	qDebug() << "clock: AlarmClient::setAlarmRepeatType <--";
       
   337 }
   302 }
   338 
   303 
   339 void AlarmClient::deleteAlarm(int alarmId)
   304 void AlarmClient::deleteAlarm(int alarmId)
   340 {
   305 {
   341 	qDebug() << "clock: AlarmClient::deleteAlarm -->";
       
   342 
       
   343 	// Request the alarmserver to delete the alarm.
   306 	// Request the alarmserver to delete the alarm.
   344 	mAlarmSrvSession.AlarmDelete(alarmId);
   307 	mAlarmSrvSession.AlarmDelete(alarmId);
   345 
   308 }
   346 	qDebug() << "clock: AlarmClient::deleteAlarm <--";
   309 
       
   310 /*!
       
   311 	 Delete the snoozed alarm.
       
   312 	 
       
   313 	 \param alarmId needs to be deleted and reset again.
       
   314 	 \return int error value if any.
       
   315  */
       
   316 int AlarmClient::deleteSnoozedAlarm(int alarmId)
       
   317 {
       
   318 	AlarmInfo alarmInfo;
       
   319 	int retVal(KErrNone);
       
   320 	int returnVal = getAlarmInfo(alarmId, alarmInfo);
       
   321 	if (KErrNone != retVal) {
       
   322 		return retVal;
       
   323 	}
       
   324 	returnVal = mAlarmSrvSession.AlarmDelete(alarmId);
       
   325 	if (KErrNone != retVal) {
       
   326 		return retVal;
       
   327 	}
       
   328 	alarmInfo.alarmState = InPreparation;
       
   329 	alarmInfo.nextDueTime = alarmInfo.origAlarmTime;
       
   330 	setAlarm(alarmInfo);
       
   331 	
       
   332 	return retVal;
   347 }
   333 }
   348 
   334 
   349 int AlarmClient::getAlarmInfo(int alarmId, AlarmInfo& alarmInfo)
   335 int AlarmClient::getAlarmInfo(int alarmId, AlarmInfo& alarmInfo)
   350 {
   336 {
   351 	qDebug() << "clock: AlarmClient::getAlarmInfo -->";
       
   352 
       
   353 	TASShdAlarm tempSharedAlarm;
   337 	TASShdAlarm tempSharedAlarm;
   354 
   338 
   355 	// Get the requested alarm info from the alarm server.
   339 	// Get the requested alarm info from the alarm server.
   356 	int error = mAlarmSrvSession.GetAlarmDetails(alarmId, tempSharedAlarm);
   340 	int error = mAlarmSrvSession.GetAlarmDetails(alarmId, tempSharedAlarm);
   357 
   341 
   371 		alarmInfo.nextDueTime.setHMS(
   355 		alarmInfo.nextDueTime.setHMS(
   372 				tempSharedAlarm.NextDueTime().DateTime().Hour(),
   356 				tempSharedAlarm.NextDueTime().DateTime().Hour(),
   373 				tempSharedAlarm.NextDueTime().DateTime().Minute(),
   357 				tempSharedAlarm.NextDueTime().DateTime().Minute(),
   374 				tempSharedAlarm.NextDueTime().DateTime().Second());
   358 				tempSharedAlarm.NextDueTime().DateTime().Second());
   375 
   359 
   376 		// Alarm day
   360 		// Alarm date
   377 		alarmInfo.alarmDateTime.setYMD(
   361 		alarmInfo.alarmDateTime.setYMD(
   378 				tempSharedAlarm.OriginalExpiryTime().DateTime().Year(),
   362 				tempSharedAlarm.OriginalExpiryTime().DateTime().Year(),
   379 				tempSharedAlarm.OriginalExpiryTime().DateTime().Month()+1,
   363 				tempSharedAlarm.OriginalExpiryTime().DateTime().Month()+1,
   380 				tempSharedAlarm.OriginalExpiryTime().DateTime().Day()+1);
   364 				tempSharedAlarm.OriginalExpiryTime().DateTime().Day()+1);
       
   365 		
       
   366 		// Set alarm day.
       
   367 		alarmInfo.alarmDay =
       
   368 			tempSharedAlarm.OriginalExpiryTime().DayNoInWeek();
   381 
   369 
   382 		// The alarm status
   370 		// The alarm status
   383 		if (EAlarmStatusEnabled == tempSharedAlarm.Status()) {
   371 		if (EAlarmStatusEnabled == tempSharedAlarm.Status()) {
   384 			alarmInfo.alarmStatus = Enabled;
   372 			alarmInfo.alarmStatus = Enabled;
   385 		} else {
   373 		} else {
   402 			alarmInfo.volumeStatus = AlarmVolumeOn;
   390 			alarmInfo.volumeStatus = AlarmVolumeOn;
   403 		} else {
   391 		} else {
   404 			alarmInfo.volumeStatus = AlarmVolumeOff;
   392 			alarmInfo.volumeStatus = AlarmVolumeOff;
   405 		}
   393 		}
   406 	}
   394 	}
   407 
       
   408 	qDebug() << "clock: AlarmClient::getAlarmInfo <--";
       
   409 
       
   410 	return error;
   395 	return error;
   411 }
   396 }
   412 
   397 
   413 void AlarmClient::toggleAlarmStatus(int alarmId, int alarmStatus)
   398 void AlarmClient::toggleAlarmStatus(int alarmId, int alarmStatus)
   414 {
   399 {
   415 	qDebug() << "clock: AlarmClient::toggleAlarmStatus -->";
       
   416 
   400 
   417 	mAlarmSrvSession.SetAlarmStatus(alarmId, (TAlarmStatus)alarmStatus);
   401 	mAlarmSrvSession.SetAlarmStatus(alarmId, (TAlarmStatus)alarmStatus);
   418 
   402 
   419 	qDebug() << "clock: AlarmClient::toggleAlarmStatus <--";
       
   420 }
   403 }
   421 
   404 
   422 void AlarmClient::startListener()
   405 void AlarmClient::startListener()
   423 {
   406 {
   424 	qDebug("clock: AlarmClient::startListener() -->");
   407 		mListener->start();
   425 
   408 
   426 	mListener->start();
       
   427 
       
   428 	qDebug("clock: AlarmClient::startListener() <--");
       
   429 }
   409 }
   430 
   410 
   431 void AlarmClient::stopListener()
   411 void AlarmClient::stopListener()
   432 {
   412 {
   433 	qDebug("clock: AlarmClient::stopListener() -->");
       
   434 
       
   435 	mListener->stop();
   413 	mListener->stop();
   436 
   414 
   437 	qDebug("clock: AlarmClient::stopListener() <--");
       
   438 }
   415 }
   439 
   416 
   440 void AlarmClient::notifyChange(int alarmId)
   417 void AlarmClient::notifyChange(int alarmId)
   441 {
   418 {
   442 	qDebug() << "clock: AlarmClient::notifyChange -->";
   419 		emit alarmStateChanged(alarmId);
   443 
       
   444 	emit alarmStateChanged(alarmId);
       
   445 
       
   446 	qDebug() << "clock: AlarmClient::notifyChange <--";
       
   447 }
   420 }
   448 
   421 
   449 // End of file	--Don't remove this.
   422 // End of file	--Don't remove this.