hti/PC_Tools/HTIGateway/ServicePlugins/HtiScreenshot/HtiScreenshot.cpp
changeset 36 813b186005b6
parent 30 86a2e675b80a
child 41 838cdffd57ce
--- a/hti/PC_Tools/HTIGateway/ServicePlugins/HtiScreenshot/HtiScreenshot.cpp	Mon Jun 28 15:36:07 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,665 +0,0 @@
-/*
-* Copyright (c) 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 "HtiScreenshotH.h"
-
-#include "hticommon.h"
-#include "HtiPlugin.h"
-#include <string.h>
-
-#include "HtiSoapHandlerInterface.h"
-
-// Command codes
-const unsigned char CMD_SCR_FULL		= 0x01;
-const unsigned char CMD_SCR_REGION		= 0x02;
-const unsigned char CMD_SCR_FULL_ZIP	= 0x03;
-const unsigned char CMD_SCR_REGION_ZIP	= 0x04;
-
-const unsigned char CMD_TEXT_RCG_U		= 0x11;
-const unsigned char CMD_TEXT_IMG_U		= 0x13;
-
-const unsigned char CMD_SCR_FULL_SERIES	      = 0x21;
-const unsigned char CMD_SCR_REGION_SERIES	  = 0x22;
-const unsigned char CMD_SCR_FULL_ZIP_SERIES	  = 0x23;
-const unsigned char CMD_SCR_REGION_ZIP_SERIES = 0x24;
-
-const unsigned char CMD_CHANGE_SCREEN = 0x30;
-
-const unsigned char CMD_SCREEN_MODE = 0x3A;
-
-const unsigned char CMD_DELTA_SCR_FULL              = 0x81;
-const unsigned char CMD_DELTA_SCR_REGION            = 0x82;
-const unsigned char CMD_DELTA_SCR_FULL_ZIP          = 0x83;
-const unsigned char CMD_DELTA_SCR_REGION_ZIP        = 0x84;
-const unsigned char CMD_DELTA_SCR_RESET             = 0x85;
-const unsigned char CMD_DELTA_SCR_FULL_SERIES       = 0xA1;
-const unsigned char CMD_DELTA_SCR_REGION_SERIES     = 0xA2;
-const unsigned char CMD_DELTA_SCR_FULL_ZIP_SERIES   = 0xA3;
-const unsigned char CMD_DELTA_SCR_REGION_ZIP_SERIES = 0xA4;
-
-
-const unsigned char HTI_FONT_BOLD	= 0x01;
-const unsigned char HTI_FONT_ITALIC	= 0x02;
-const unsigned char HTI_FONT_NOTAA	= 0x04;
-const unsigned char HTI_FONT_SUPER	= 0x08;
-const unsigned char HTI_FONT_SUB	= 0x18;
-
-const unsigned char TXT_RCG_OK	= 0xF0;
-const unsigned char TXT_RCG_NOK	= 0xF1;
-
-const int MAX_HREF_LEN = 128;
-
-char zipMimeType[] = "application/octet-stream"; //??
-
-const static int g_ScreenHtiTimeoutImage = 120000;
-const static int g_ScreenHtiTimeoutRecongition = 60000;
-
-//**********************************************************************************
-// HELPER FUNCTIONS
-//
-//**********************************************************************************
-//**********************************************************************************
-// AddHtiFont
-//**********************************************************************************
-void AddHtiFont(HtiMsgHelper &msg, struct ns1__HtiFont &font)
-{
-	msg.AddWCStringWithLengthByte( font.fontName );
-	msg.AddWord( font.fontHeight );
-
-	BYTE fontStyle = 0x0;
-
-	// These can be combined
-	if( font.isBold )
-		fontStyle |= HTI_FONT_BOLD;
-	if( font.isItalic )
-		fontStyle |= HTI_FONT_ITALIC;
-	if( font.isNotAntialiased )
-		fontStyle |= HTI_FONT_NOTAA;
-
-	// And these cannot
-	if( font.position == 1 )
-		fontStyle |= HTI_FONT_SUPER;
-	else if( font.position == 2 )
-		fontStyle |= HTI_FONT_SUB;
-
-	msg.AddByte( fontStyle );
-}
-
-//**********************************************************************************
-// GetHref
-//**********************************************************************************
-void GetHref(char* str, const unsigned char cmd)
-{
-	sprintf(str, "htiSs%x%d", cmd, clock() );
-}
-
-//**********************************************************************************
-// SetScreenCaptureAttachment
-//**********************************************************************************
-int SetScreenCaptureAttachment(struct soap* soap,
-							   BYTE* data,
-							   int dataSize,
-                               BYTE command,
-							   char* mimeType,
-                               struct ns1__captureScreenResponse &r)
-{
-	// alloc soap memory for attachment
-	char* soapAttachment = (char*)soap_malloc(soap, dataSize );
-	memcpy( soapAttachment, data, dataSize );
-
-	// get & set href for attachment
-	char href[MAX_HREF_LEN];
-	GetHref(href, command);
-	r._returnAttachment.href = (char*)soap_malloc(soap, strlen(href)+1 );
-	strcpy( r._returnAttachment.href, href );
-
-	// default mimetype is bmp
-	if ( !( mimeType ? strlen( mimeType ) : 0 ) )
-        mimeType = "image/bmp";
-
-	// set mimetype
-	r._returnAttachment.mimeType = (char*)soap_malloc(soap, strlen(mimeType)+1 );
-	strcpy( r._returnAttachment.mimeType, mimeType );
-
-	// set the attahcment
-	soap_set_dime(soap);
-	return soap_set_dime_attachment(soap, soapAttachment, dataSize,
-	                                mimeType, href, 0, NULL);
-}
-
-//**********************************************************************************
-// SetDeltaScreenCaptureAttachment
-//**********************************************************************************
-int SetDeltaScreenCaptureAttachment(struct soap* soap,
-							        BYTE* data,
-							        int dataSize,
-                                    BYTE command,
-							        char* mimeType,
-                                    struct ns1__captureDeltaScreenResponse &r)
-{
-	// Set rectangle
-	r._returnDeltaAttachment.rect.topLeftX     = *(WORD*)data; data+=2;
-	r._returnDeltaAttachment.rect.topLeftY     = *(WORD*)data; data+=2;
-	r._returnDeltaAttachment.rect.bottomRightX = *(WORD*)data; data+=2;
-	r._returnDeltaAttachment.rect.bottomRightY = *(WORD*)data; data+=2;
-	dataSize -= 2*4;
-
-	// No attachment?
-	if ( dataSize == 0 )
-		return SOAP_OK;
-
-	// alloc soap memory for attachment
-	char* soapAttachment = (char*)soap_malloc(soap, dataSize );
-	memcpy( soapAttachment, data, dataSize );
-
-	// get & set href for attachment
-	char href[MAX_HREF_LEN];
-	GetHref(href, command);
-	r._returnDeltaAttachment.href = (char*)soap_malloc(soap, strlen(href)+1 );
-	strcpy( r._returnDeltaAttachment.href, href );
-
-	// default mimetype is bmp
-	if ( !( mimeType ? strlen( mimeType ) : 0 ) )
-        mimeType = "image/bmp";
-
-	// set mimetype
-	r._returnDeltaAttachment.mimeType = (char*)soap_malloc(soap, strlen(mimeType)+1 );
-	strcpy( r._returnDeltaAttachment.mimeType, mimeType );
-
-	// set the attahcment
-	soap_set_dime(soap);
-	return soap_set_dime_attachment(soap, soapAttachment, dataSize,
-	                                mimeType, href, 0, NULL);
-}
-
-//**********************************************************************************
-// GetSerieShotFiles
-//**********************************************************************************
-int GetSerieShotFiles(struct soap* soap,
-						HtiMsgHelper &msg,
-                        struct ArrayOfFiles *files )
-{
-	// list of screenshot files is returned
-	char** tmp_array_ptr = NULL;
-	int i = 0;
-	files->__size = 0;
-	while( i < msg.GetMsgLen() )
-	{
-		int fileNameLen = msg.GetMsgBody()[i++];
-		tmp_array_ptr = (char**) realloc(tmp_array_ptr,
-		                                 (files->__size+1)*sizeof(char**));
-		tmp_array_ptr[files->__size++] = msg.GetSoapString( i, fileNameLen );
-		i += fileNameLen;
-	}
-
-	if ( files->__size == 0 )
-	{
-		soap->error = soap_receiver_fault( soap, "HtiError",
-			"No screenshot files returned");
-		return SOAP_FAULT;
-	}
-
-	// alloc (soap) space for pointers & copy data from tmp_array_ptr
-	files->__ptr = (char**) soap_malloc(soap, sizeof(char**)*files->__size);
-	memcpy(files->__ptr, tmp_array_ptr, sizeof(char**)*files->__size);
-	free(tmp_array_ptr);
-	return SOAP_OK;
-}
-
-//**********************************************************************************
-// SOAP FUNCTIONS
-//
-//**********************************************************************************
-
-//**********************************************************************************
-// ns1__captureFullScreen
-//**********************************************************************************
-int ns1__captureFullScreen(struct soap* soap,
-						   unsigned char colorDepth,
-						   char *imageMimeType,
-						   struct ns1__captureScreenResponse &r)
-{
-	HtiMsgHelper msg( soap, HTI_UID, CMD_SCR_FULL );
-	msg.AddByte( colorDepth );
-	msg.AddString( imageMimeType );
-	if ( msg.SendReceiveMsg( g_ScreenHtiTimeoutImage ) )
-		return SOAP_FAULT;
-
-    return SetScreenCaptureAttachment( soap, msg.GetMsgBody(), msg.GetMsgLen(),
-		CMD_SCR_FULL, imageMimeType ,r );
-}
-
-//**********************************************************************************
-// ns1__captureFullScreenZip
-//**********************************************************************************
-int ns1__captureFullScreenZip(struct soap* soap,
-							  unsigned char colorDepth,
-							  char *imageMimeType,
-							  struct ns1__captureScreenResponse &r)
-{
-	HtiMsgHelper msg( soap, HTI_UID, CMD_SCR_FULL_ZIP );
-	msg.AddByte( colorDepth );
-	msg.AddString( imageMimeType );
-	if ( msg.SendReceiveMsg( g_ScreenHtiTimeoutImage ) )
-		return SOAP_FAULT;
-
-    return SetScreenCaptureAttachment( soap, msg.GetMsgBody(), msg.GetMsgLen(),
-		CMD_SCR_FULL_ZIP, zipMimeType ,r );
-}
-
-//**********************************************************************************
-// ns1__captureRegion
-//**********************************************************************************
-int ns1__captureRegion(struct soap* soap,
-					   struct ns1__HtiRect rect,
-					   unsigned char colorDepth,
-					   char *imageMimeType,
-					   struct ns1__captureScreenResponse &r)
-{
-	HtiMsgHelper msg( soap, HTI_UID, CMD_SCR_REGION );
-	msg.AddWord( rect.topLeftX );
-	msg.AddWord( rect.topLeftY );
-	msg.AddWord( rect.bottomRightX );
-	msg.AddWord( rect.bottomRightY );
-	msg.AddByte( colorDepth );
-	msg.AddString( imageMimeType );
-	if ( msg.SendReceiveMsg( g_ScreenHtiTimeoutImage ) )
-		return SOAP_FAULT;
-
-    return SetScreenCaptureAttachment( soap, msg.GetMsgBody(), msg.GetMsgLen(),
-		CMD_SCR_REGION, imageMimeType ,r );
-}
-
-//**********************************************************************************
-// ns1__captureRegionZip
-//**********************************************************************************
-int ns1__captureRegionZip(struct soap* soap,
-						  struct ns1__HtiRect rect,
-						  unsigned char colorDepth,
-						  char *imageMimeType,
-						  struct ns1__captureScreenResponse &r)
-{
-	HtiMsgHelper msg( soap, HTI_UID, CMD_SCR_REGION_ZIP );
-	msg.AddWord( rect.topLeftX );
-	msg.AddWord( rect.topLeftY );
-	msg.AddWord( rect.bottomRightX );
-	msg.AddWord( rect.bottomRightY );
-	msg.AddByte( colorDepth );
-	msg.AddString( imageMimeType );
-	if ( msg.SendReceiveMsg( g_ScreenHtiTimeoutImage ) )
-		return SOAP_FAULT;
-
-    return SetScreenCaptureAttachment( soap, msg.GetMsgBody(), msg.GetMsgLen(),
-		CMD_SCR_REGION_ZIP, zipMimeType ,r );
-}
-
-//**********************************************************************************
-// ns1__recognizeText
-//**********************************************************************************
-int ns1__recognizeText(struct soap* soap,
-					   wchar_t *text,
-					   struct ArrayOfHtiFonts* array,
-					   struct ns1__recognizeTextResponse &r)
-{
-	// check text parameter
-	if ( check_mandatory_wcstring_parameter( soap, text, "text" ) )
-		return SOAP_FAULT;
-	else if ( wcslen( text ) > 0xff )
-	{
-		soap->error = soap_sender_fault(soap, "HtiGateway", "Text too long");
-		return SOAP_FAULT;
-	}
-
-	// check array parameter
-	if ( array == NULL )
-	{
-		soap->error = soap_sender_fault( soap, "HtiGateway",
-		                                 "No font array parameter" );
-		return SOAP_FAULT;
-	}
-	else if ( array->__size < 0 )
-	{
-		soap->error = soap_sender_fault( soap, "HtiGateway", "Font array empty" );
-		return SOAP_FAULT;
-	}
-	else if ( array->__size > 0xff )
-	{
-		soap->error = soap_sender_fault( soap, "HtiGateway", "Too many fonts" );
-		return SOAP_FAULT;
-	}
-	for ( int i = 0; i < array->__size; i++ )
-	{
-		char tmp[20];
-		sprintf(tmp, "HtiFont[%d]", i);
-		if ( check_mandatory_wcstring_parameter( soap,
-			            array->__ptrHtiFont[i].fontName, tmp ) )
-			return SOAP_FAULT;
-	}
-
-	// construct and send the message
-	HtiMsgHelper msg( soap, HTI_UID, CMD_TEXT_RCG_U );
-	msg.AddWCStringWithLengthByte( text );
-	msg.AddByte( array->__size );
-	for( int i = 0; i < array->__size; i++ )
-		AddHtiFont( msg, array->__ptrHtiFont[i] );
-
-	if ( msg.SendReceiveMsg( g_ScreenHtiTimeoutRecongition ) )
-		return SOAP_FAULT;
-
-	// Check response
-	if ( msg.CheckMsgExactLen( 6 ) )
-		return SOAP_FAULT;
-
-	switch( msg.GetByte(0) )
-	{
-	case TXT_RCG_OK:
-		r._returnText.found = true;
-		r._returnText.x = msg.GetWord( 1 );
-		r._returnText.y = msg.GetWord( 3 );
-		r._returnText.fontIndex = msg.GetByte( 5 );
-		break;
-
-	case TXT_RCG_NOK:
-		r._returnText.found = false;
-		break;
-
-	default:
-		soap->error = soap_receiver_fault_format(soap, "HtiError",
-			"Invalid response command code 0x%x", msg.GetByte(0) );
-		return SOAP_FAULT;
-	}
-
-	return SOAP_OK;
-}
-
-//**********************************************************************************
-// ns1__createTextImage
-//**********************************************************************************
-int ns1__createTextImage(struct soap* soap,
-						 unsigned char colorDepth,
-						 char *imageMimeType,
-						 wchar_t *text,
-						 struct ns1__HtiFont* font,
-						 struct ns1__HtiRGB    fgColor,
-						 struct ns1__HtiRGB    bgColor,
-						 struct ns1__captureScreenResponse &r)
-{
-	// check text & imageMimeType parameters
-	if ( check_mandatory_wcstring_parameter( soap, text, "text" ) ||
-		 check_mandatory_string_parameter( soap, imageMimeType, "imageMimeType" ) )
-		return SOAP_FAULT;
-	else if ( wcslen( text ) > 0xff )
-	{
-		soap->error = soap_sender_fault(soap, "HtiGateway", "Text too long");
-		return SOAP_FAULT;
-	}
-
-	// check font parameter
-	if ( font == NULL )
-	{
-		soap->error = soap_sender_fault( soap, "HtiGateway", "No font parameter" );
-		return SOAP_FAULT;
-	}
-	if ( check_mandatory_wcstring_parameter( soap, font->fontName, "fontName" ) )
-		return SOAP_FAULT;
-
-	// construct and send the message
-	HtiMsgHelper msg( soap, HTI_UID, CMD_TEXT_IMG_U );
-	msg.AddByte( colorDepth );
-	msg.AddStringWithLengthByte( imageMimeType );
-	msg.AddWCStringWithLengthByte( text );
-	AddHtiFont( msg, *font );
-	msg.AddByte( fgColor.red ); // note little endian encoding
-	msg.AddByte( fgColor.green );
-	msg.AddByte( fgColor.blue );
-	msg.AddByte( 0x00 );
-	msg.AddByte( bgColor.red );
-	msg.AddByte( bgColor.green );
-	msg.AddByte( bgColor.blue );
-	msg.AddByte( 0x00 );
-	if ( msg.SendReceiveMsg( g_ScreenHtiTimeoutImage ) )
-		return SOAP_FAULT;
-
-	// get response
-	return SetScreenCaptureAttachment( soap, msg.GetMsgBody(), msg.GetMsgLen(),
-		CMD_TEXT_IMG_U, imageMimeType ,r );
-}
-
-
-
-//**********************************************************************************
-// ns1__captureFullScreenSeries
-//**********************************************************************************
-int ns1__captureFullScreenSeries(struct soap* soap,
-								 int duration,
-								 int interval,
-								 unsigned char colorDepth,
-								 char *imageMimeType,
-                                 struct ArrayOfFiles *files)
-{
-	HtiMsgHelper msg( soap, HTI_UID, CMD_SCR_FULL_SERIES );
-	msg.AddInt( duration );
-	msg.AddInt( interval );
-	msg.AddByte( colorDepth );
-	msg.AddString( imageMimeType );
-	int timeout = HTIMSG_TIMEOUT_10_SECONDS + duration/1000; // duration is in us
-	if ( msg.SendReceiveMsg( timeout ) )
-		return SOAP_FAULT;
-
-	return GetSerieShotFiles( soap, msg, files );
-}
-
-//**********************************************************************************
-// ns1__captureFullScreenZipSeries
-//**********************************************************************************
-int ns1__captureFullScreenZipSeries(struct soap* soap,
-									int duration,
-									int interval,
-									unsigned char colorDepth,
-									char *imageMimeType,
-                                    struct ArrayOfFiles *files)
-{
-	HtiMsgHelper msg( soap, HTI_UID, CMD_SCR_FULL_ZIP_SERIES );
-	msg.AddInt( duration );
-	msg.AddInt( interval );
-	msg.AddByte( colorDepth );
-	msg.AddString( imageMimeType );
-	int timeout = HTIMSG_TIMEOUT_10_SECONDS + duration/1000; // duration is in us
-	if ( msg.SendReceiveMsg( timeout ) )
-		return SOAP_FAULT;
-
-	return GetSerieShotFiles( soap, msg, files );
-}
-
-//**********************************************************************************
-// ns1__captureRegionSeries
-//**********************************************************************************
-int ns1__captureRegionSeries(struct soap* soap,
-							 int duration,
-							 int interval,
-							 unsigned char colorDepth,
-							 struct ns1__HtiRect rect,
-							 char *imageMimeType,
-                             struct ArrayOfFiles *files)
-{
-	HtiMsgHelper msg( soap, HTI_UID, CMD_SCR_REGION_SERIES );
-	msg.AddInt( duration );
-	msg.AddInt( interval );
-	msg.AddByte( colorDepth );
-	msg.AddWord( rect.topLeftX );
-	msg.AddWord( rect.topLeftY );
-	msg.AddWord( rect.bottomRightX );
-	msg.AddWord( rect.bottomRightY );
-	msg.AddString( imageMimeType );
-	int timeout = HTIMSG_TIMEOUT_10_SECONDS + duration/1000; // duration is in us
-	if ( msg.SendReceiveMsg( timeout ) )
-		return SOAP_FAULT;
-
-	return GetSerieShotFiles( soap, msg, files );
-}
-
-//**********************************************************************************
-// ns1__captureRegionZipSeries
-//**********************************************************************************
-int ns1__captureRegionZipSeries(struct soap* soap,
-								int duration,
-								int interval,
-								unsigned char colorDepth,
-								struct ns1__HtiRect rect,
-								char *imageMimeType,
-                                struct ArrayOfFiles *files)
-{
-	HtiMsgHelper msg( soap, HTI_UID, CMD_SCR_REGION_ZIP_SERIES );
-	msg.AddInt( duration );
-	msg.AddInt( interval );
-	msg.AddByte( colorDepth );
-	msg.AddWord( rect.topLeftX );
-	msg.AddWord( rect.topLeftY );
-	msg.AddWord( rect.bottomRightX );
-	msg.AddWord( rect.bottomRightY );
-	msg.AddString( imageMimeType );
-	int timeout = HTIMSG_TIMEOUT_10_SECONDS + duration/1000; // duration is in us
-	if ( msg.SendReceiveMsg( timeout ) )
-		return SOAP_FAULT;
-
-	return GetSerieShotFiles( soap, msg, files );
-}
-
-//**********************************************************************************
-// ns1__captureDeltaFullScreen
-//**********************************************************************************
-int ns1__captureDeltaFullScreen(struct soap* soap,
-								unsigned char colorDepth,
-								char *imageMimeType,
-                                struct ns1__captureDeltaScreenResponse &r)
-{
-	HtiMsgHelper msg( soap, HTI_UID, CMD_DELTA_SCR_FULL );
-	msg.AddByte( colorDepth );
-	msg.AddString( imageMimeType );
-	if ( msg.SendReceiveMsg( g_ScreenHtiTimeoutImage ) )
-		return SOAP_FAULT;
-
-    return SetDeltaScreenCaptureAttachment( soap, msg.GetMsgBody(), msg.GetMsgLen(),
-		CMD_DELTA_SCR_FULL, imageMimeType ,r );
-}
-//**********************************************************************************
-// ns1__captureDeltaFullScreenZip
-//**********************************************************************************
-int ns1__captureDeltaFullScreenZip(struct soap* soap,
-								   unsigned char colorDepth,
-								   char *imageMimeType,
-                                   struct ns1__captureDeltaScreenResponse &r)
-{
-	HtiMsgHelper msg( soap, HTI_UID, CMD_DELTA_SCR_FULL_ZIP );
-	msg.AddByte( colorDepth );
-	msg.AddString( imageMimeType );
-	if ( msg.SendReceiveMsg( g_ScreenHtiTimeoutImage ) )
-		return SOAP_FAULT;
-
-    return SetDeltaScreenCaptureAttachment( soap, msg.GetMsgBody(), msg.GetMsgLen(),
-		CMD_DELTA_SCR_FULL_ZIP, zipMimeType ,r );
-}
-//**********************************************************************************
-// ns1__captureDeltaRegion
-//**********************************************************************************
-int ns1__captureDeltaRegion(struct soap* soap,
-                            struct ns1__HtiRect rect,
-							unsigned char colorDepth,
-							char *imageMimeType,
-							struct ns1__captureDeltaScreenResponse &r)
-{
-	HtiMsgHelper msg( soap, HTI_UID, CMD_DELTA_SCR_REGION );
-	msg.AddWord( rect.topLeftX );
-	msg.AddWord( rect.topLeftY );
-	msg.AddWord( rect.bottomRightX );
-	msg.AddWord( rect.bottomRightY );
-	msg.AddByte( colorDepth );
-	msg.AddString( imageMimeType );
-	if ( msg.SendReceiveMsg( g_ScreenHtiTimeoutImage ) )
-		return SOAP_FAULT;
-
-    return SetDeltaScreenCaptureAttachment( soap, msg.GetMsgBody(), msg.GetMsgLen(),
-		CMD_DELTA_SCR_REGION, imageMimeType ,r );
-}
-//**********************************************************************************
-// ns1__captureDeltaRegionZip
-//**********************************************************************************
-int ns1__captureDeltaRegionZip(struct soap* soap,
-                               struct ns1__HtiRect rect,
-							   unsigned char colorDepth,
-							   char *imageMimeType,
-							   struct ns1__captureDeltaScreenResponse &r)
-{
-	HtiMsgHelper msg( soap, HTI_UID, CMD_DELTA_SCR_REGION_ZIP );
-	msg.AddWord( rect.topLeftX );
-	msg.AddWord( rect.topLeftY );
-	msg.AddWord( rect.bottomRightX );
-	msg.AddWord( rect.bottomRightY );
-	msg.AddByte( colorDepth );
-	msg.AddString( imageMimeType );
-	if ( msg.SendReceiveMsg( g_ScreenHtiTimeoutImage ) )
-		return SOAP_FAULT;
-
-    return SetDeltaScreenCaptureAttachment( soap, msg.GetMsgBody(), msg.GetMsgLen(),
-		CMD_DELTA_SCR_REGION_ZIP, zipMimeType ,r );
-}
-
-//**********************************************************************************
-// ns1__selectScreen
-//**********************************************************************************
-int ns1__selectScreen(struct soap* soap,
-					  unsigned char screenNr,
-                      struct ns1__selectScreenResponse *out)
-{
-	HtiMsgHelper msg( soap, HTI_UID, CMD_CHANGE_SCREEN );
-	msg.AddByte( screenNr );
-	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
-}
-
-//**********************************************************************************
-// ns1__resetDeltaScreen
-//**********************************************************************************
-int ns1__resetDeltaScreen(struct soap* soap,
-                          void *_,
-                          struct ns1__resetDeltaScreenResponse *out)
-{
-	HtiMsgHelper msg( soap, HTI_UID, CMD_DELTA_SCR_RESET );
-	return msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS );
-}
-
-//**********************************************************************************
-// ns1__screenMode
-//**********************************************************************************
-int ns1__screenMode(struct soap* soap,
-                    void *_,
-                    struct ns1__screenModeResponse& r)
-{
-	HtiMsgHelper msg( soap, HTI_UID, CMD_SCREEN_MODE );
-	if ( msg.SendReceiveMsg( HTIMSG_TIMEOUT_10_SECONDS ) )
-		return SOAP_FAULT;
-    
-	// Check response
-	if ( msg.CheckMsgExactLen( 8 ) )
-		return SOAP_FAULT;
-
-    r._returnScreenMode.screenNumber = msg.GetByte( 0 );
-    r._returnScreenMode.screenWidth = msg.GetWord( 1 );
-    r._returnScreenMode.screenHeight = msg.GetWord( 3 );
-    r._returnScreenMode.screenRotation = (ns1__screenOrientation)msg.GetByte( 5 );
-    r._returnScreenMode.displayMode = msg.GetByte( 6 );
-    r._returnScreenMode.focusScreenNumber = msg.GetByte( 7 );
-
-    return SOAP_OK;
-}