hti/PC_Tools/HTIGateway/ServicePlugins/HtiSysInfo/HtiSysInfo.cpp
branchRCL_3
changeset 59 8ad140f3dd41
parent 0 a03f92240627
equal deleted inserted replaced
49:7fdc9a71d314 59:8ad140f3dd41
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 * 
       
    14 * Description:
       
    15 */
       
    16 #include "HtiSysInfoH.h"
       
    17 #include "HtiPlugin.h"
       
    18 #include "HtiSoapHandlerInterface.h"
       
    19 
       
    20 const unsigned char CMD_HAL					 = 0x01;
       
    21 const unsigned char CMD_IMEI				 = 0x02;
       
    22 const unsigned char CMD_SW_VERSION			 = 0x03;
       
    23 const unsigned char CMD_LANG_VERSION		 = 0x04;
       
    24 const unsigned char CMD_SW_LANG_VERSION		 = 0x05;
       
    25 const unsigned char CMD_USERAGENT_STRING	 = 0x06;
       
    26 const unsigned char CMD_GET_FREE_RAM		 = 0x07;
       
    27 const unsigned char CMD_GET_USED_RAM		 = 0x08;
       
    28 const unsigned char CMD_GET_TOTAL_RAM		 = 0x09;
       
    29 const unsigned char CMD_EAT_RAM				 = 0x0A;
       
    30 const unsigned char CMD_RELEASE_RAM			 = 0x0B;
       
    31 const unsigned char CMD_GET_FREE_DISKSPACE	 = 0x0C;
       
    32 const unsigned char CMD_GET_USED_DISKSPACE	 = 0x0D;
       
    33 const unsigned char CMD_GET_TOTAL_DISKSPACE	 = 0x0E;
       
    34 const unsigned char CMD_EAT_DISKSPACE		 = 0x0F;
       
    35 const unsigned char CMD_RELEASE_DISKSPACE	 = 0x10;
       
    36 const unsigned char CMD_SET_HOMETIME		 = 0x20;
       
    37 const unsigned char CMD_GET_HOMETIME		 = 0x21;
       
    38 const unsigned char CMD_SET_DATE_TIME_FORMAT = 0x22;
       
    39 const unsigned char CMD_LIGHT_STATUS	 	 = 0x30;
       
    40 const unsigned char CMD_LIGHT_ON			 = 0x31;
       
    41 const unsigned char CMD_LIGHT_OFF			 = 0x32;
       
    42 const unsigned char CMD_LIGHT_BLINK			 = 0x33;
       
    43 const unsigned char CMD_LIGHT_RELEASE		 = 0x3A;
       
    44 const unsigned char CMD_SCREENSAVER_DISABLE	 = 0x40;
       
    45 const unsigned char CMD_SCREENSAVER_ENABLE	 = 0x41;
       
    46 const unsigned char CMD_SCREENSAVER_TIMEOUT	 = 0x42;
       
    47 const unsigned char CMD_GET_NETWORK_MODE	 = 0x50;
       
    48 const unsigned char CMD_SET_NETWORK_MODE	 = 0x51;
       
    49 const unsigned char CMD_SET_NETWORK_MODE_NO_REBOOT = 0x52;
       
    50 const unsigned char CMD_HSDPA_ENABLE_DISABLE = 0x53;
       
    51 const unsigned char CMD_IR_ACTIVATE          = 0x5A;
       
    52 const unsigned char CMD_BT_POWER_STATE       = 0x5B;
       
    53 const unsigned char CMD_BT_SETTINGS          = 0x5C;
       
    54 const unsigned char CMD_BT_DELETE_PAIRINGS   = 0x5D;
       
    55 const unsigned char CMD_KEY_LOCK_TOGGLE      = 0x60;
       
    56 const unsigned char CMD_AUTO_KEY_LOCK_TIME   = 0x61;
       
    57 const unsigned char CMD_EMPTY_DRM_RIGHTS_DB  = 0x65;
       
    58 const unsigned char CMD_BATTERY_STATUS       = 0x70;
       
    59 const unsigned char CMD_SIGNAL_STRENGTH      = 0x71;
       
    60 const unsigned char CMD_UPDATE_MEDIA_GALLERY = 0x7A;
       
    61 const unsigned char CMD_ACTIVATE_SKIN        = 0x80;
       
    62 
       
    63 //const unsigned char CMD_LIGHT_SUCCESS		= 0x00;
       
    64 
       
    65 //**********************************************************************************
       
    66 // SOAP FUNCTIONS
       
    67 //
       
    68 //**********************************************************************************
       
    69 
       
    70 //**********************************************************************************
       
    71 // ns1__getHalAttribute()
       
    72 //**********************************************************************************
       
    73 int ns1__getHalAttribute(struct soap* soap,
       
    74 						 int attribute,
       
    75 						 int &halAttribute)
       
    76 {
       
    77 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_HAL );
       
    78 	msg.AddInt( attribute );
       
    79 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
    80 		return SOAP_FAULT;
       
    81 
       
    82 	if ( msg.CheckMsgExactLen( 4 ) )
       
    83 		return SOAP_FAULT;
       
    84 
       
    85 	halAttribute = msg.GetInt( 0 );
       
    86 
       
    87 	return SOAP_OK;
       
    88 }
       
    89 
       
    90 //**********************************************************************************
       
    91 // ns1__getImei()
       
    92 //**********************************************************************************
       
    93 int ns1__getImei(struct soap* soap,
       
    94 				 void *_,
       
    95 				 char *&imei)
       
    96 {
       
    97 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_IMEI );
       
    98 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
    99 		return SOAP_FAULT;
       
   100 
       
   101 	imei = msg.GetSoapString( 0, msg.GetMsgLen() );
       
   102 
       
   103 	return SOAP_OK;
       
   104 }
       
   105 
       
   106 //**********************************************************************************
       
   107 // ns1__getSwVersion()
       
   108 //**********************************************************************************
       
   109 int ns1__getSwVersion(struct soap* soap,
       
   110 					  void *_,
       
   111 					  wchar_t *&SwVersion)
       
   112 {
       
   113 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_SW_VERSION );
       
   114 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   115 		return SOAP_FAULT;
       
   116 
       
   117 	// UCS-2 encoded string size must always be even
       
   118 	if( msg.GetMsgLen() % 2 )
       
   119 	{
       
   120 		soap->error = soap_receiver_fault(soap, "HtiError",
       
   121 			"response message size not even");
       
   122 		return SOAP_FAULT;
       
   123 	}
       
   124 
       
   125 	// SwVersion returned as UCS-2 encoded text
       
   126 	SwVersion = msg.GetSoapWCString( 0, msg.GetMsgLen()/2 );
       
   127 
       
   128 	return SOAP_OK;
       
   129 }
       
   130 
       
   131 //**********************************************************************************
       
   132 // ns1__getLangVersion()
       
   133 //**********************************************************************************
       
   134 int ns1__getLangVersion(struct soap* soap,
       
   135 						void *_,
       
   136 						wchar_t *&langVersion)
       
   137 {
       
   138 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_LANG_VERSION );
       
   139 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   140 		return SOAP_FAULT;
       
   141 
       
   142 	// UCS-2 encoded string size must always be even
       
   143 	if( msg.GetMsgLen() % 2 )
       
   144 	{
       
   145 		soap->error = soap_receiver_fault(soap, "HtiError",
       
   146 			"response message size not even");
       
   147 		return SOAP_FAULT;
       
   148 	}
       
   149 
       
   150 	// LangVersion returned as UCS-2 encoded text
       
   151 	langVersion = msg.GetSoapWCString( 0, msg.GetMsgLen()/2 );
       
   152 
       
   153 	return SOAP_OK;
       
   154 }
       
   155 
       
   156 //**********************************************************************************
       
   157 // ns1__getSwLangVersion()
       
   158 //**********************************************************************************
       
   159 int ns1__getSwLangVersion(struct soap* soap,
       
   160 						  void *_,
       
   161 						  wchar_t *&swLangVersion)
       
   162 {
       
   163 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_SW_LANG_VERSION );
       
   164 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   165 		return SOAP_FAULT;
       
   166 
       
   167 	// UCS-2 encoded string size must always be even
       
   168 	if( msg.GetMsgLen() % 2 )
       
   169 	{
       
   170 		soap->error = soap_receiver_fault(soap, "HtiError",
       
   171 			"response message size not even");
       
   172 		return SOAP_FAULT;
       
   173 	}
       
   174 
       
   175 	// swLangVersion returned as UCS-2 encoded text
       
   176 	swLangVersion = msg.GetSoapWCString( 0, msg.GetMsgLen()/2 );
       
   177 
       
   178 	return SOAP_OK;
       
   179 }
       
   180 
       
   181 //**********************************************************************************
       
   182 // ns1__getUserAgentString()
       
   183 //**********************************************************************************
       
   184 int ns1__getUserAgentString(struct soap* soap,
       
   185 							void *_,
       
   186 							char *&userAgentString)
       
   187 {
       
   188 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_USERAGENT_STRING );
       
   189 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   190 		return SOAP_FAULT;
       
   191 
       
   192 	userAgentString = msg.GetSoapString( 0, msg.GetMsgLen() );
       
   193 
       
   194 	return SOAP_OK;
       
   195 }
       
   196 
       
   197 //**********************************************************************************
       
   198 // ns1__setHomeTime()
       
   199 //**********************************************************************************
       
   200 int ns1__setHomeTime(struct soap* soap,
       
   201                      struct ns1__HtiTime * time,
       
   202 					 struct ns1__setHomeTimeResponse *out)
       
   203 {
       
   204 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_SET_HOMETIME );
       
   205 	msg.AddWord( time->year );
       
   206 	msg.AddByte( time->month );
       
   207 	msg.AddByte( time->day );
       
   208 	msg.AddByte( time->hour );
       
   209 	msg.AddByte( time->minute );
       
   210 	msg.AddByte( time->second );
       
   211 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   212 }
       
   213 
       
   214 //**********************************************************************************
       
   215 // ns1__getHomeTime()
       
   216 //**********************************************************************************
       
   217 int ns1__getHomeTime(struct soap* soap,
       
   218 					 void *_,
       
   219                      struct getHomeTimeResponse& r)
       
   220 {
       
   221 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_GET_HOMETIME );
       
   222 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   223 		return SOAP_FAULT;
       
   224 
       
   225 	if ( msg.CheckMsgExactLen( 7 ) )
       
   226 		return SOAP_FAULT;
       
   227 
       
   228 	r._returnHtiTime.year   = msg.GetWord( 0 );
       
   229 	r._returnHtiTime.month  = msg.GetByte( 2 );
       
   230 	r._returnHtiTime.day    = msg.GetByte( 3 );
       
   231 	r._returnHtiTime.hour   = msg.GetByte( 4 );
       
   232 	r._returnHtiTime.minute = msg.GetByte( 5 );
       
   233 	r._returnHtiTime.second = msg.GetByte( 6 );
       
   234 
       
   235 	return SOAP_OK;
       
   236 }
       
   237 
       
   238 //**********************************************************************************
       
   239 // ns1__setDateTimeFormat()
       
   240 //**********************************************************************************
       
   241 int ns1__setDateTimeFormat(struct soap* soap,
       
   242                            enum DateFormat dateFormat,
       
   243                            unsigned char dateSeparator,
       
   244                            enum TimeFormat timeFormat,
       
   245                            unsigned char timeSeparator,
       
   246                            enum ClockFormat  clockFormat,
       
   247 					       struct ns1__setDateTimeFormatResponse *out)
       
   248 {
       
   249 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_SET_DATE_TIME_FORMAT );
       
   250 	msg.AddByte( dateFormat );
       
   251 	msg.AddByte( dateSeparator );
       
   252 	msg.AddByte( timeFormat );
       
   253 	msg.AddByte( timeSeparator );
       
   254 	msg.AddByte( clockFormat );
       
   255 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   256 }
       
   257 
       
   258 //**********************************************************************************
       
   259 // ns1__getFreeRAM()
       
   260 //**********************************************************************************
       
   261 int ns1__getFreeRAM(struct soap* soap,
       
   262 					void *_,
       
   263 					unsigned int &freeRAM)
       
   264 {
       
   265 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_GET_FREE_RAM );
       
   266 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   267 		return SOAP_FAULT;
       
   268 
       
   269 	freeRAM = (unsigned int) msg.GetInt( 0 );
       
   270 
       
   271 	return SOAP_OK;
       
   272 }
       
   273 
       
   274 //**********************************************************************************
       
   275 // ns1__getUsedRAM()
       
   276 //**********************************************************************************
       
   277 int ns1__getUsedRAM(struct soap* soap,
       
   278 					void *_,
       
   279 					unsigned int &usedRAM)
       
   280 {
       
   281 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_GET_USED_RAM );
       
   282 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   283 		return SOAP_FAULT;
       
   284 
       
   285 	usedRAM = (unsigned int) msg.GetInt( 0 );
       
   286 
       
   287 	return SOAP_OK;
       
   288 }
       
   289 
       
   290 //**********************************************************************************
       
   291 // ns1__getTotalRAM()
       
   292 //**********************************************************************************
       
   293 int ns1__getTotalRAM(struct soap* soap,
       
   294 					 void *_,
       
   295 					 unsigned int &totalRAM)
       
   296 {
       
   297 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_GET_TOTAL_RAM );
       
   298 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   299 		return SOAP_FAULT;
       
   300 
       
   301 	totalRAM = (unsigned int) msg.GetInt( 0 );
       
   302 
       
   303 	return SOAP_OK;
       
   304 }
       
   305 
       
   306 //**********************************************************************************
       
   307 // ns1__eatRAM()
       
   308 //**********************************************************************************
       
   309 int ns1__eatRAM(struct soap* soap,
       
   310 				unsigned int RAMToBeLeftOver,
       
   311 				unsigned int &freeRAM)
       
   312 {
       
   313 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_EAT_RAM );
       
   314 	msg.AddInt( RAMToBeLeftOver );
       
   315 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   316 		return SOAP_FAULT;
       
   317 
       
   318 	freeRAM = (unsigned int) msg.GetInt( 0 );
       
   319 
       
   320 	return SOAP_OK;
       
   321 }
       
   322 
       
   323 //**********************************************************************************
       
   324 // ns1__releaseRAM()
       
   325 //**********************************************************************************
       
   326 int ns1__releaseRAM(struct soap* soap,
       
   327 					void *_,
       
   328 					unsigned int &freeRAM)
       
   329 {
       
   330 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_RELEASE_RAM );
       
   331 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   332 		return SOAP_FAULT;
       
   333 
       
   334 	freeRAM = (unsigned int) msg.GetInt( 0 );
       
   335 
       
   336 	return SOAP_OK;
       
   337 }
       
   338 
       
   339 //**********************************************************************************
       
   340 // ns1__getFreeDiskSpace()
       
   341 //**********************************************************************************
       
   342 int ns1__getFreeDiskSpace(struct soap* soap,
       
   343 						  char *driveLetter,
       
   344 						  ULONG64 &freeDiskSpace)
       
   345 {
       
   346 	if ( check_mandatory_string_parameter( soap, driveLetter, "driveLetter" ) )
       
   347 		return SOAP_FAULT;
       
   348 
       
   349 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_GET_FREE_DISKSPACE );
       
   350 	msg.AddByte( driveLetter[0] );
       
   351 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   352 		return SOAP_FAULT;
       
   353 
       
   354 	freeDiskSpace = *(ULONG64*) msg.GetMsgBody();
       
   355 
       
   356 	return SOAP_OK;
       
   357 }
       
   358 
       
   359 //**********************************************************************************
       
   360 // ns1__getUsedDiskSpace()
       
   361 //**********************************************************************************
       
   362 int ns1__getUsedDiskSpace(struct soap* soap,
       
   363 						  char *driveLetter,
       
   364 						  ULONG64 &usedDiskSpace)
       
   365 {
       
   366 	if ( check_mandatory_string_parameter( soap, driveLetter, "driveLetter" ) )
       
   367 		return SOAP_FAULT;
       
   368 
       
   369 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_GET_USED_DISKSPACE );
       
   370 	msg.AddByte( driveLetter[0] );
       
   371 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   372 		return SOAP_FAULT;
       
   373 
       
   374 	usedDiskSpace = *(ULONG64*) msg.GetMsgBody();
       
   375 
       
   376 	return SOAP_OK;
       
   377 }
       
   378 
       
   379 //**********************************************************************************
       
   380 // ns1__getTotalDiskSpace()
       
   381 //**********************************************************************************
       
   382 int ns1__getTotalDiskSpace(struct soap* soap,
       
   383 						   char *driveLetter,
       
   384 						   ULONG64 &totalDiskSpace)
       
   385 {
       
   386 	if ( check_mandatory_string_parameter( soap, driveLetter, "driveLetter" ) )
       
   387 		return SOAP_FAULT;
       
   388 
       
   389 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_GET_TOTAL_DISKSPACE );
       
   390 	msg.AddByte( driveLetter[0] );
       
   391 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   392 		return SOAP_FAULT;
       
   393 
       
   394 	totalDiskSpace = *(ULONG64*) msg.GetMsgBody();
       
   395 
       
   396 	return SOAP_OK;
       
   397 }
       
   398 
       
   399 //**********************************************************************************
       
   400 // ns1__eatDiskSpace()
       
   401 //**********************************************************************************
       
   402 int ns1__eatDiskSpace(struct soap* soap,
       
   403 					  char *driveLetter,
       
   404 					  ULONG64 diskSpaceToBeLeftOver,
       
   405 					  ULONG64 &freeDiskSpace)
       
   406 {
       
   407 	if ( check_mandatory_string_parameter( soap, driveLetter, "driveLetter" ) )
       
   408 		return SOAP_FAULT;
       
   409 
       
   410 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_EAT_DISKSPACE );
       
   411 	msg.AddByte( driveLetter[0] );
       
   412 	msg.AddUInt64( diskSpaceToBeLeftOver );
       
   413 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   414 		return SOAP_FAULT;
       
   415 
       
   416 	freeDiskSpace = *(ULONG64*) msg.GetMsgBody();
       
   417 
       
   418 	return SOAP_OK;
       
   419 }
       
   420 
       
   421 //**********************************************************************************
       
   422 // ns1__releaseDiskSpace()
       
   423 //**********************************************************************************
       
   424 int ns1__releaseDiskSpace(struct soap* soap,
       
   425 						  char *driveLetter,
       
   426 						  ULONG64 &freeDiskSpace)
       
   427 {
       
   428 	if ( check_mandatory_string_parameter( soap, driveLetter, "driveLetter" ) )
       
   429 		return SOAP_FAULT;
       
   430 
       
   431 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_RELEASE_DISKSPACE );
       
   432 	msg.AddByte( driveLetter[0] );
       
   433 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   434 		return SOAP_FAULT;
       
   435 
       
   436 	freeDiskSpace = *(ULONG64*) msg.GetMsgBody();
       
   437 
       
   438 	return SOAP_OK;
       
   439 }
       
   440 
       
   441 //**********************************************************************************
       
   442 // ns1__lightStatus()
       
   443 //**********************************************************************************
       
   444 int ns1__lightStatus(struct soap* soap,
       
   445 					 unsigned char lightTarget,
       
   446 					 unsigned char &lightStatus)
       
   447 {
       
   448 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_LIGHT_STATUS );
       
   449 	msg.AddByte( lightTarget );
       
   450 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   451 		return SOAP_FAULT;
       
   452 
       
   453 	lightStatus = msg.GetByte( 0 );
       
   454 
       
   455 	return SOAP_OK;
       
   456 }
       
   457 
       
   458 //**********************************************************************************
       
   459 // ns1__lightOn()
       
   460 //**********************************************************************************
       
   461 int ns1__lightOn(struct soap* soap,
       
   462 				 unsigned char lightTarget,
       
   463 				 unsigned short duration,
       
   464 				 unsigned char intensity,
       
   465 				 unsigned char fadeIn,
       
   466                  struct ns1__lightOnResponse *out)
       
   467 {
       
   468 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_LIGHT_ON );
       
   469 	msg.AddByte( lightTarget );
       
   470 	msg.AddWord( duration );
       
   471 	msg.AddByte( intensity );
       
   472 	msg.AddByte( fadeIn );
       
   473 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   474 }
       
   475 
       
   476 //**********************************************************************************
       
   477 // ns1__lightOff()
       
   478 //**********************************************************************************
       
   479 int ns1__lightOff(struct soap* soap,
       
   480 				  unsigned char lightTarget,
       
   481 				  unsigned short duration,
       
   482 				  unsigned char fadeOut,
       
   483                   struct ns1__lightOffResponse *out)
       
   484 {
       
   485 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_LIGHT_OFF );
       
   486 	msg.AddByte( lightTarget );
       
   487 	msg.AddWord( duration );
       
   488 	msg.AddByte( fadeOut );
       
   489 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   490 }
       
   491 
       
   492 //**********************************************************************************
       
   493 // ns1__lightBlink()
       
   494 //**********************************************************************************
       
   495 int ns1__lightBlink(struct soap* soap,
       
   496 					unsigned char lightTarget,
       
   497 					unsigned short duration,
       
   498 					unsigned short onDuration,
       
   499 					unsigned short offDuration,
       
   500 					unsigned char intensity,
       
   501                     struct ns1__lightBlinkResponse *out)
       
   502 {
       
   503 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_LIGHT_BLINK );
       
   504 	msg.AddByte( lightTarget );
       
   505 	msg.AddWord( duration );
       
   506 	msg.AddWord( onDuration );
       
   507 	msg.AddWord( offDuration );
       
   508 	msg.AddByte( intensity );
       
   509 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   510 }
       
   511 
       
   512 //**********************************************************************************
       
   513 // ns1__lightRelease()
       
   514 //**********************************************************************************
       
   515 int ns1__lightRelease(struct soap* soap,
       
   516 					  void *_,
       
   517                       struct ns1__lightReleaseResponse *out)
       
   518 {
       
   519 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_LIGHT_RELEASE );
       
   520 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   521 }
       
   522 
       
   523 //**********************************************************************************
       
   524 // ns1__screenSaverDisable()
       
   525 //**********************************************************************************
       
   526 int ns1__screenSaverDisable(struct soap* soap,
       
   527 							void *_,
       
   528                             struct ns1__screenSaverDisableResponse *out)
       
   529 {
       
   530 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_SCREENSAVER_DISABLE );
       
   531 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   532 }
       
   533 
       
   534 //**********************************************************************************
       
   535 // ns1__screenSaverEnable()
       
   536 //**********************************************************************************
       
   537 int ns1__screenSaverEnable(struct soap* soap,
       
   538 						   void *_,
       
   539                            struct ns1__screenSaverEnableResponse *out)
       
   540 {
       
   541 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_SCREENSAVER_ENABLE );
       
   542 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   543 }
       
   544 
       
   545 //**********************************************************************************
       
   546 // ns1__screenSaverTimeout()
       
   547 //**********************************************************************************
       
   548 int ns1__screenSaverTimeout(struct soap* soap,
       
   549 						    unsigned char timeout,
       
   550                             struct ns1__screenSaverTimeoutResponse *out)
       
   551 {
       
   552 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_SCREENSAVER_TIMEOUT );
       
   553     msg.AddByte( timeout );
       
   554 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   555 }
       
   556 
       
   557 //**********************************************************************************
       
   558 // ns1__getNetworkMode()
       
   559 //**********************************************************************************
       
   560 int ns1__getNetworkMode(struct soap* soap,
       
   561 					void *_,
       
   562                     enum NetworkMode &mode)
       
   563 {
       
   564 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_GET_NETWORK_MODE );
       
   565 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   566 		return SOAP_FAULT;
       
   567 
       
   568 	if ( msg.CheckCommandCode( CMD_GET_NETWORK_MODE ) )
       
   569 		return SOAP_FAULT;
       
   570 
       
   571 	mode = (NetworkMode) msg.GetInt( 1 );
       
   572 
       
   573 	return SOAP_OK;
       
   574 }
       
   575 
       
   576 //**********************************************************************************
       
   577 // ns1__setNetworkMode()
       
   578 //**********************************************************************************
       
   579 int ns1__setNetworkMode(struct soap* soap,
       
   580 					enum NetworkMode mode,
       
   581                     struct ns1__setNetworkModeResponse *out)
       
   582 {
       
   583 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_SET_NETWORK_MODE );
       
   584 	msg.AddInt( mode );
       
   585 	msg.SendMsg();
       
   586 
       
   587 	HtiSoapHandlerInterface* handler = 
       
   588 		static_cast<HtiSoapHandlerInterface*>( soap->user );
       
   589 
       
   590 	// Wait a while if there is an error message. If there is no 
       
   591 	// response it is assumed that the command has succeeded.
       
   592 	handler->WaitForHtiMessage( HTIMSG_TIMEOUT_10_SECONDS );
       
   593 	if ( handler->IsReceivedHtiError() )
       
   594 	{
       
   595 		handler->SendSoapFaultFromReceivedHtiError();
       
   596 		return SOAP_FAULT;
       
   597 	}
       
   598 	return SOAP_OK;
       
   599 }
       
   600 
       
   601 //**********************************************************************************
       
   602 // ns1__setNetworkModeNoReboot()
       
   603 //**********************************************************************************
       
   604 int ns1__setNetworkModeNoReboot(struct soap* soap,
       
   605 					            enum NetworkMode mode,
       
   606                                 struct ns1__setNetworkModeNoRebootResponse *out)
       
   607 {
       
   608 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_SET_NETWORK_MODE_NO_REBOOT );
       
   609 	msg.AddInt( mode );
       
   610     return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   611 }
       
   612 
       
   613 //**********************************************************************************
       
   614 // ns1__setHsdpaStatus()
       
   615 //**********************************************************************************
       
   616 int ns1__setHsdpaStatus(struct soap* soap,
       
   617 					    enum HsdpaStatus status,
       
   618                         struct ns1__setHsdpaStatusResponse *out)
       
   619 {
       
   620 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_HSDPA_ENABLE_DISABLE );
       
   621 	msg.AddInt( status );
       
   622     return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   623 }
       
   624 
       
   625 //**********************************************************************************
       
   626 // ns1__irActivate()
       
   627 //**********************************************************************************
       
   628 int ns1__irActivate(struct soap* soap,
       
   629 		            void *_,
       
   630                     struct ns1__irActivateResponse *out)
       
   631 {
       
   632 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_IR_ACTIVATE );
       
   633 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   634 }
       
   635 
       
   636 //**********************************************************************************
       
   637 // ns1__btPowerState()
       
   638 //**********************************************************************************
       
   639 int ns1__btPowerState(struct soap* soap,
       
   640                       bool btOn,
       
   641                       bool force,
       
   642                       struct ns1__btPowerStateResponse *out)
       
   643 {
       
   644 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_BT_POWER_STATE );
       
   645     msg.AddByte( btOn );
       
   646     msg.AddByte( force );
       
   647 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   648 }
       
   649 
       
   650 //**********************************************************************************
       
   651 // ns1__btSettings()
       
   652 //**********************************************************************************
       
   653 int ns1__btSettings(struct soap* soap,
       
   654                     bool discoverable,
       
   655                     bool enableSAP,
       
   656                     char *btName,
       
   657                     struct ns1__btSettingsResponse *out)
       
   658 {
       
   659 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_BT_SETTINGS );
       
   660     msg.AddByte( discoverable );
       
   661     msg.AddByte( enableSAP );
       
   662     msg.AddStringWithLengthByteZero( btName );
       
   663 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   664 }
       
   665 
       
   666 //**********************************************************************************
       
   667 // ns1__btDeletePairings()
       
   668 //**********************************************************************************
       
   669 int ns1__btDeletePairings(struct soap* soap,
       
   670                           bool closeConnections,
       
   671                           char *btName,
       
   672                           int &deleteCount)
       
   673 {
       
   674 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_BT_DELETE_PAIRINGS );
       
   675     msg.AddByte( closeConnections );
       
   676     msg.AddStringWithLengthByteZero( btName );
       
   677 
       
   678     if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   679     	return SOAP_FAULT;
       
   680 
       
   681     if ( msg.CheckMsgExactLen( 1 ) )
       
   682 		return SOAP_FAULT;
       
   683 
       
   684     deleteCount = msg.GetByte( 0 );
       
   685 
       
   686 	return SOAP_OK;
       
   687 }
       
   688 
       
   689 //**********************************************************************************
       
   690 // ns1__keyLockToggle()
       
   691 //**********************************************************************************
       
   692 int ns1__keyLockToggle(struct soap* soap,
       
   693                        bool keyLockOn,
       
   694                        bool showNote,
       
   695                        struct ns1__keyLockToggleResponse *out)
       
   696 {
       
   697 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_KEY_LOCK_TOGGLE );
       
   698     msg.AddByte( keyLockOn );
       
   699     msg.AddByte( showNote );
       
   700 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   701 }
       
   702 
       
   703 //**********************************************************************************
       
   704 // ns1__autoKeyLockTime()
       
   705 //**********************************************************************************
       
   706 int ns1__autoKeyLockTime(struct soap* soap,
       
   707                          int seconds,
       
   708                          struct ns1__autoKeyLockTimeResponse *out)
       
   709 {
       
   710 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_AUTO_KEY_LOCK_TIME );
       
   711     msg.AddWord( seconds );
       
   712 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   713 }
       
   714 
       
   715 //**********************************************************************************
       
   716 // ns1__emptyDrmRightsDb()
       
   717 //**********************************************************************************
       
   718 int ns1__emptyDrmRightsDb(struct soap* soap,
       
   719 		                  void *_,
       
   720                           struct ns1__emptyDrmRightsDbResponse *out)
       
   721 {
       
   722 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_EMPTY_DRM_RIGHTS_DB );
       
   723 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   724 }
       
   725 
       
   726 //**********************************************************************************
       
   727 // ns1__batteryStatus()
       
   728 //**********************************************************************************
       
   729 int ns1__batteryStatus(struct soap* soap,
       
   730 					   void *_,
       
   731                        struct batteryStatusResponse& r)
       
   732 {
       
   733 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_BATTERY_STATUS );
       
   734 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   735 		return SOAP_FAULT;
       
   736 
       
   737 	if ( msg.CheckMsgExactLen( 2 ) )
       
   738 		return SOAP_FAULT;
       
   739 
       
   740 	r._returnHtiBatteryStatus.batteryBars = msg.GetByte( 0 );
       
   741 	r._returnHtiBatteryStatus.chargingStatus = msg.GetByte( 1 );
       
   742 
       
   743 	return SOAP_OK;
       
   744 }
       
   745 
       
   746 //**********************************************************************************
       
   747 // ns1__signalStrength()
       
   748 //**********************************************************************************
       
   749 int ns1__signalStrength(struct soap* soap,
       
   750 					    void *_,
       
   751                         int &signalBars)
       
   752 {
       
   753 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_SIGNAL_STRENGTH );
       
   754 	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
       
   755 		return SOAP_FAULT;
       
   756 
       
   757 	if ( msg.CheckMsgExactLen( 1 ) )
       
   758 		return SOAP_FAULT;
       
   759     
       
   760     signalBars = msg.GetByte( 0 );
       
   761 
       
   762 	return SOAP_OK;
       
   763 }
       
   764 
       
   765 //**********************************************************************************
       
   766 // ns1__updateMediaGallery()
       
   767 //**********************************************************************************
       
   768 int ns1__updateMediaGallery(struct soap* soap,
       
   769 					        char* filePath,
       
   770                             struct ns1__updateMediaGalleryResponse *out)
       
   771 {
       
   772 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_UPDATE_MEDIA_GALLERY );
       
   773     msg.AddStringWithLengthByteZero( filePath );
       
   774 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_30_SECONDS );
       
   775 }
       
   776 
       
   777 //**********************************************************************************
       
   778 // ns1__activateSkin()
       
   779 //**********************************************************************************
       
   780 int ns1__activateSkin(struct soap* soap,
       
   781 					  char* skinName,
       
   782                       struct ns1__activateSkinResponse *out)
       
   783 {
       
   784 	HtiMsgHelper msg( soap, HTI_SYSINFO_UID, CMD_ACTIVATE_SKIN );
       
   785     msg.AddStringWithLengthByteZero( skinName );
       
   786 	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
       
   787 }