aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/3rdparty/lipi-toolkit/src/util/lib/LTKInkFileReader.h
blob: 16704688e4e3ca6ac91cbb9b60a1fb078d8abe38 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
/*****************************************************************************************
* Copyright (c) 2007 Hewlett-Packard Development Company, L.P.
* Permission is hereby granted, free of charge, to any person obtaining a copy of 
* this software and associated documentation files (the "Software"), to deal in 
* the Software without restriction, including without limitation the rights to use, 
* copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the 
* Software, and to permit persons to whom the Software is furnished to do so, 
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
*****************************************************************************************/

/************************************************************************
 * SVN MACROS
 *
 * $LastChangedDate: 2008-07-10 15:23:21 +0530 (Thu, 10 Jul 2008) $
 * $Revision: 556 $
 * $Author: sharmnid $
 *
 ************************************************************************/
/************************************************************************
 * FILE DESCR: Definitions for the Ink File Reader Module
 *
 * CONTENTS:   
 *
 * AUTHOR:     Balaji R.
 *
 * DATE:       December 23, 2004
 * CHANGE HISTORY:
 * Author		Date			Description of change
 * Deepu V.     14 Sept 2005    Added unipen file reading function
 *                              that reads annotation.
 ************************************************************************/

#ifndef __LTKINKFILEREADER_H
#define __LTKINKFILEREADER_H

#include "LTKTypes.h"


class LTKTraceGroup;
class LTKCaptureDevice;
class LTKScreenContext;

/**
* @ingroup util
*/

/** @brief Exposes the APIs for reading ink files
@class LTKInkFileReader
*/
class LTKInkFileReader
{

public:

	/**
	* @name Constructors and Destructor
	*/

	// @{

	/**
	 * Default Constructor
	 */

	LTKInkFileReader();

	/**
	* Destructor
	*/

	~LTKInkFileReader();

	// @}

	/**
	 * @name Methods
	 */

	// @{

	/**
	 * This is a static method which reads a raw ink file and loads it into a trace group object
	 * Also reads the device information from the unipen ink file into a capture device object
	 * @param inkFile Name of the ink file to be read
	 * @param traceGroup trace group into which the ink file has to be read into
	 * @param captureDevice object into which the device specific information is to be read into
	 * @return SUCCESS on successful read operation
	 */
	
	static int readRawInkFile(const string& inkFile, LTKTraceGroup& traceGroup, LTKCaptureDevice& captureDevice, LTKScreenContext& screenContext);

	/**
	 * This is a static method which reads a unipen ink file and loads it into a trace group object
	 * Also reads the device information from the unipen ink file into a capture device object
	 * @param inkFile Name of the ink file to be read
	 * @param traceGroup trace group into which the ink file has to be read into
	 * @param captureDevice object into which the device specific information is to be read into
	 * @return SUCCESS on successful read operation
	 */
	
	static int readUnipenInkFile(const string& inkFile, LTKTraceGroup& traceGroup, LTKCaptureDevice& captureDevice, LTKScreenContext& screenContext);

	/**
	 * This is a static method which reads the contents of a unipen file containing ink stored in a specified format into
	 * a trace group object. Also the device information stored in the ink file is read
	 * into a capture device object.The writing area information is captured in screen context object.
	 * @param inkFile name of the file containing the ink
	 * @param hierarchyLevel level at which the ink is required, ex. WORD or CHARACTER that follows .SEGMENT
	 * @param quality quality of the ink that is required. Can be GOOD,BAD,OK or ALL. Example, if ink of quality
	 *		  GOOD and BAD are required, then quality="GOOD,BAD" (NOTE:comma(,) is the delimiter) else if all ink 
	 *		  are required, quality="ALL"
	 * @param traceGroup trace group into which the ink has to be read into
	 * @param traceIndicesCommentsMap Map containing list of strokes separated by commas as key and the comments
	 *        to that trace group unit as value (ex. key-"2,4,5" value-"delayed stroke"
     * @param captureDevice capture device object into which device info is to be read into
     * @param screenContext writing area information
	 * @return SUCCESS on successful read operation
	 */

	static int readUnipenInkFileWithAnnotation(const string& inkFile,const string& hierarchyLevel,const string& quality, LTKTraceGroup& traceGroup,map<string,string>& traceIndicesCommentsMap,LTKCaptureDevice& captureDevice, LTKScreenContext& screenContext);


	// @}
};

#endif	//#ifndef __LTKINKFILEREADER_H