~ubuntu-branches/ubuntu/trusty/cuneiform/trusty

« back to all changes in this revision

Viewing changes to cuneiform_src/Kern/rreccom/src/cpp/rreccom.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jakub Wilk, c-assert.diff, slovenian-slv.diff
  • Date: 2011-01-26 21:53:07 UTC
  • mfrom: (5.1.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20110126215307-62x61mcesr607qb7
Tags: 1.0.0+dfsg-2
* Upload to unstable.
* Explicitly build-depend on pkg-config. Thanks to Stefano Rivera for the
  bug report.
* Add Vcs-* fields.
* Use the standard C assert() macro, rather than custom Cuneiform one.
  [c-assert.diff]
* Pass CFLAGS, CXXFLAGS and LDFLAGS (get from dpkg-buildflags) to cmake
  (closes: #608345). Thanks to Sami Liedes for the bug report.
  + Build depend on dpkg-dev (>= 1.15.7).
* Pass --parallel to dh.
  + Bump debhelper minimum version to 7.4.10.
* Update debian/copyright to the latest DEP-5 version.
* Bump year in debian/copyright.
* Explicitly link to GraphicsMagick (rather than via the ImageMagick
  compatibility layer).
* Don't ship /usr/lib/cuneiform/*.so symlinks. These libraries are
  considered private, at least until #598616 is fixed.
* Rename some private variables in debian/rules to make them lowercase.
* Update patch headers.
* Provide proper ‘build-arch’ and ‘build-indep’ targets in debian/rules.
* Document input format in the manual page (closes: #572061). Thanks to
  Janusz S. Bień for the bug report.
* Use ‘slv’ (rather than ‘slo’) as language code for Slovenian.
  [slovenian-slv.diff]
* Fix package description: Slovenian is supported, Slovak is not.
* Improve documentation of the language (-l) option (closes: #602512).
  Thanks to Jari Aalto for the bug report.
* Install reasons file for vrms.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
Copyright (c) 1993-2008, Cognitive Technologies
3
3
All rights reserved.
4
4
 
5
 
����������� ��������� ��������������� � ������������� ��� � ���� ��������� ����,
6
 
��� � � �������� �����, � ����������� ��� ���, ��� ���������� ��������� �������:
7
 
 
8
 
      * ��� ��������� ��������������� ��������� ���� ������ ���������� ���������
9
 
        ���� ����������� �� ��������� �����, ���� ������ ������� � �����������
10
 
        ����� �� ��������.
11
 
      * ��� ��������� ��������������� ��������� ���� � ������������ �/��� �
12
 
        ������ ����������, ������������ ��� ���������������, ������ �����������
13
 
        ��������� ���� ���������� �� ��������� �����, ���� ������ ������� �
14
 
        ����������� ����� �� ��������.
15
 
      * �� �������� Cognitive Technologies, �� ����� �� ����������� �� �����
16
 
        ���� ������������ � �������� �������� ��������� �/��� �����������
17
 
        ���������, ���������� �� ���� ��, ��� ���������������� �����������
18
 
        ����������.
19
 
 
20
 
��� ��������� ������������� ����������� ��������� ���� �/��� ������� ������ "���
21
 
��� ����" ��� ������-���� ���� ��������, ���������� ���� ��� ���������������,
22
 
������� �������� ������������ �������� � ����������� ��� ���������� ����, �� ��
23
 
������������� ���. �� �������� ��������� ���� � �� ���� ������ ����, �������
24
 
����� �������� �/��� �������� �������������� ���������, �� � ���� ������ ��
25
 
��Ѩ� ���������������, ������� ����� �����, ���������, ����������� ���
26
 
������������� ������, ��������� � �������������� ��� ���������� ����������
27
 
������������� ������������� ��������� (������� ������ ������, ��� ������,
28
 
������� ���������, ��� ������ �/��� ������ �������, ���������� ��-�� ��������
29
 
������� ��� �/��� ������ ��������� �������� ��������� � ������� �����������,
30
 
�� �� ������������� ����� ��������), �� �� ������������� ���, ���� ���� �����
31
 
�������� ��� ������ ���� ���� �������� � ����������� ����� ������� � ������.
 
5
Разрешается повторное распространение и использование как в виде исходного кода,
 
6
так и в двоичной форме, с изменениями или без, при соблюдении следующих условий:
 
7
 
 
8
      * При повторном распространении исходного кода должны оставаться указанное
 
9
        выше уведомление об авторском праве, этот список условий и последующий
 
10
        отказ от гарантий.
 
11
      * При повторном распространении двоичного кода в документации и/или в
 
12
        других материалах, поставляемых при распространении, должны сохраняться
 
13
        указанная выше информация об авторском праве, этот список условий и
 
14
        последующий отказ от гарантий.
 
15
      * Ни название Cognitive Technologies, ни имена ее сотрудников не могут
 
16
        быть использованы в качестве средства поддержки и/или продвижения
 
17
        продуктов, основанных на этом ПО, без предварительного письменного
 
18
        разрешения.
 
19
 
 
20
ЭТА ПРОГРАММА ПРЕДОСТАВЛЕНА ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИМИ ЛИЦАМИ "КАК
 
21
ОНА ЕСТЬ" БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ,
 
22
ВКЛЮЧАЯ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, НО НЕ
 
23
ОГРАНИЧИВАЯСЬ ИМИ. НИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, КОТОРОЕ
 
24
МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, НИ В КОЕМ СЛУЧАЕ НЕ
 
25
НЕСЁТ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ ИЛИ
 
26
ПОСЛЕДОВАВШИЕ УБЫТКИ, СВЯЗАННЫЕ С ИСПОЛЬЗОВАНИЕМ ИЛИ ПОНЕСЕННЫЕ ВСЛЕДСТВИЕ
 
27
НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ ПОТЕРИ ДАННЫХ, ИЛИ ДАННЫЕ,
 
28
СТАВШИЕ НЕГОДНЫМИ, ИЛИ УБЫТКИ И/ИЛИ ПОТЕРИ ДОХОДОВ, ПОНЕСЕННЫЕ ИЗ-ЗА ДЕЙСТВИЙ
 
29
ТРЕТЬИХ ЛИЦ И/ИЛИ ОТКАЗА ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ,
 
30
НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМИ СЛУЧАЯМИ), НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ДАЖЕ ЕСЛИ ТАКОЙ
 
31
ВЛАДЕЛЕЦ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ И ПОТЕРЬ.
32
32
 
33
33
Redistribution and use in source and binary forms, with or without modification,
34
34
are permitted provided that the following conditions are met:
61
61
#include "resource.h"
62
62
#include "compat_defs.h"
63
63
/*********************************************************************************************/
64
 
static Word16 gwHeightRC = 0;
65
 
Word16 gwLowRC_rrec = RRECCOM_ERR_NO; /* Not static since it is accessed in recog.cpp. */
66
 
Word8*  lnOcrPath = NULL;
67
 
/*********************************************************************************************/
68
 
/*********************************************************************************************/
69
 
BOOL APIENTRY DllMain( HANDLE hModule,
70
 
                       DWORD  ul_reason_for_call,
71
 
                       LPVOID lpReserved
 
64
static uint16_t gwHeightRC = 0;
 
65
uint16_t gwLowRC_rrec = RRECCOM_ERR_NO; /* Not static since it is accessed in recog.cpp. */
 
66
uchar*  lnOcrPath = NULL;
 
67
/*********************************************************************************************/
 
68
/*********************************************************************************************/
 
69
Bool APIENTRY DllMain( HANDLE hModule,
 
70
uint32_t  ul_reason_for_call,
 
71
                       pvoid lpReserved
72
72
                                         )
73
73
{
74
74
    return TRUE;
76
76
/*********************************************************************************************/
77
77
// JussiP: This function is never called anywhere.
78
78
#if 0
79
 
RRECCOM_FUNC(Bool32) RRECCOM_GetExportData(Word32 dwType, void * pData)
 
79
RRECCOM_FUNC(Bool32) RRECCOM_GetExportData(uint32_t dwType, void * pData)
80
80
{
81
81
#define CASE_DATA(a,b,c)        case a: *(b *)pData = c; break
82
82
 
84
84
 
85
85
        switch(dwType)
86
86
    {
87
 
                CASE_DATA(RRECCOM_FNRECOG, Bool32, (Word32)RRECCOM_Recog);
88
 
                CASE_DATA(RRECCOM_FNREX_ISLANGUAGE, Bool32, (Word32)RRECCOM_IsLanguage);
89
 
//              CASE_DATA(RRECCOM_FNRECOGCOMP, Bool32, (Word32)RRECCOM_RecogComp);
 
87
                CASE_DATA(RRECCOM_FNRECOG, Bool32, (uint32_t)RRECCOM_Recog);
 
88
                CASE_DATA(RRECCOM_FNREX_ISLANGUAGE, Bool32, (uint32_t)RRECCOM_IsLanguage);
 
89
//              CASE_DATA(RRECCOM_FNRECOGCOMP, Bool32, (uint32_t)RRECCOM_RecogComp);
90
90
 
91
 
/*        CASE_DATA(RRECCOM_Word8_Matrix                     ,Word8,matrix);
92
 
        CASE_DATA(RRECCOM_Word8_Fax1x2                     ,Word8,fax1x2);
93
 
        CASE_DATA(RRECCOM_Word16_ActualResolution  ,Word16,actual_resolution);
 
91
/*        CASE_DATA(RRECCOM_Word8_Matrix                     ,uchar,matrix);
 
92
        CASE_DATA(RRECCOM_Word8_Fax1x2                     ,uchar,fax1x2);
 
93
        CASE_DATA(RRECCOM_Word16_ActualResolution  ,uint16_t,actual_resolution);
94
94
        case RRECCOM_FNEVNPROPERT:
95
 
            *(Word32*)pData =          (Word32)RRECCOM_SetEVNProperties;
 
95
            *(uint32_t*)pData =          (uint32_t)RRECCOM_SetEVNProperties;
96
96
            break;
97
97
        case RRECCOM_FNEXTRACOMP :
98
 
            *(Word32*)pData =          (Word32)RRECCOMExtracomp;
 
98
            *(uint32_t*)pData =          (uint32_t)RRECCOMExtracomp;
99
99
            break;
100
100
        case RRECCOM_FNEXTRA :
101
 
            *(Word32*)pData =          (Word32)RRECCOMExtra;
 
101
            *(uint32_t*)pData =          (uint32_t)RRECCOMExtra;
102
102
            break;
103
103
        case RRECCOM_FNEXTRADIB:
104
 
            *(Word32*)pData =          (Word32)RRECCOMExtraDIB;
 
104
            *(uint32_t*)pData =          (uint32_t)RRECCOMExtraDIB;
105
105
            break;
106
106
 
107
107
        case    RRECCOM_FNGETCONTAINER:
108
 
            *(Word32*)pData =          (Word32)RRECCOMGetContainer;
 
108
            *(uint32_t*)pData =          (uint32_t)RRECCOMGetContainer;
109
109
            break;
110
110
 
111
111
        case    RRECCOM_FNGETLENEREP:
112
 
            *(Word32*)pData =          (Word32)RRECCOMMakeLP;
 
112
            *(uint32_t*)pData =          (uint32_t)RRECCOMMakeLP;
113
113
            break;
114
114
        case    RRECCOM_FNVERSION:
115
 
            *(Word32*)pData =          (Word32)RRECCOM_VERSION_CODE;
 
115
            *(uint32_t*)pData =          (uint32_t)RRECCOM_VERSION_CODE;
116
116
            break;
117
117
        case    RRECCOM_FNREX_ISLANGUAGE:
118
 
            *(Word32*)pData =          (Word32)RRECCOM_IsLanguage;
 
118
            *(uint32_t*)pData =          (uint32_t)RRECCOM_IsLanguage;
119
119
            break;
120
120
        case    RRECCOM_FNGETORIENT:
121
 
            *(Word32*)pData =          (Word32)RRECCOM_GetOrient;
 
121
            *(uint32_t*)pData =          (uint32_t)RRECCOM_GetOrient;
122
122
            break;
123
123
        case    RRECCOM_FNMN2CCOM:
124
 
            *(Word32*)pData =          (Word32)RRECCOM_MN2CCOM;
 
124
            *(uint32_t*)pData =          (uint32_t)RRECCOM_MN2CCOM;
125
125
            break;
126
126
        case    RRECCOM_FNGETINVERTION:
127
 
            *(Word32*)pData =          (Word32)RRECCOM_GetInvertion;
128
 
            break;
129
 
        case    RRECCOM_FNEVNALPHABET:     // ��������� �������� ��� �����
130
 
            *(Word32*)pData =          (Word32)RRECCOM_SetEVNAlphabet;
131
 
            break;
132
 
        case    RRECCOM_FNEXTRACOMP3CB:    // 3 ��������
133
 
            *(Word32*)pData =          (Word32)RRECCOMExtracomp3CB;
134
 
            break;
135
 
        case    RRECCOM_FNEXTGETRECRASTERORIENT: // ���������� �������� ������
136
 
            *(Word32*)pData =          (Word32)exc_get_rec_raster_orient;
137
 
            break;
138
 
        case    RRECCOM_FNSETALLALPHAGRA: // ������� ��������� ����
139
 
            *(Word32*)pData =          (Word32)exc_set_all_alphabet_gra;
 
127
            *(uint32_t*)pData =          (uint32_t)RRECCOM_GetInvertion;
 
128
            break;
 
129
        case    RRECCOM_FNEVNALPHABET:     // установка алфавита для евент
 
130
            *(uint32_t*)pData =          (uint32_t)RRECCOM_SetEVNAlphabet;
 
131
            break;
 
132
        case    RRECCOM_FNEXTRACOMP3CB:    // 3 коллбэка
 
133
            *(uint32_t*)pData =          (uint32_t)RRECCOMExtracomp3CB;
 
134
            break;
 
135
        case    RRECCOM_FNEXTGETRECRASTERORIENT: // ориентация рабочего растра
 
136
            *(uint32_t*)pData =          (uint32_t)exc_get_rec_raster_orient;
 
137
            break;
 
138
        case    RRECCOM_FNSETALLALPHAGRA: // алфавит нейронной сети
 
139
            *(uint32_t*)pData =          (uint32_t)exc_set_all_alphabet_gra;
140
140
            break;*/
141
141
                default:
142
142
                gwLowRC_rrec = RRECCOM_ERR_NOTIMPLEMENT;
149
149
}
150
150
#endif
151
151
/*********************************************************************************************/
152
 
RRECCOM_FUNC(Bool32) RRECCOM_SetImportData(Word32 dwType, void * pData)
 
152
RRECCOM_FUNC(Bool32) RRECCOM_SetImportData(uint32_t dwType, const void * pData)
153
153
{
154
154
//#define CASE_DATA(a,b,c)        case a: c = *(b *)pData; break
155
155
#define CASE_PDATA(a,b,c)       case a: c = (b)pData;    break
158
158
 
159
159
        switch(dwType)
160
160
    {
161
 
/*        CASE_DATA(RRECCOM_Word8_Matrix             ,Word8,matrix);
162
 
        CASE_DATA(RRECCOM_Word8_Fax1x2             ,Word8,fax1x2);
163
 
    CASE_DATA(RRECCOM_Word16_ActualResolution,Word16,actual_resolution);
 
161
/*        CASE_DATA(RRECCOM_Word8_Matrix             ,uchar,matrix);
 
162
        CASE_DATA(RRECCOM_Word8_Fax1x2             ,uchar,fax1x2);
 
163
    CASE_DATA(RRECCOM_Word16_ActualResolution,uint16_t,actual_resolution);
164
164
    CASE_PDATA(RRECCOM_ProgressStart,      FNRRECCOM_ProgressStart, fnProgressStart);
165
165
        CASE_PDATA(RRECCOM_ProgressStep,   FNRRECCOM_ProgressStep,  fnProgressStep);
166
166
        CASE_PDATA(RRECCOM_ProgressFinish, FNRRECCOM_ProgressFinish,fnProgressFinish);
167
167
*/
168
 
    CASE_PDATA(RRECCOM_OcrPath,    Word8*, lnOcrPath);
 
168
    CASE_PDATA(RRECCOM_OcrPath,    uchar*, lnOcrPath);
169
169
                default:
170
170
                                gwLowRC_rrec = RRECCOM_ERR_NOTIMPLEMENT;
171
171
                                return FALSE;
178
178
 
179
179
}
180
180
/*********************************************************************************************/
181
 
RRECCOM_FUNC(Word32)   RRECCOM_GetReturnCode(void)
 
181
RRECCOM_FUNC(uint32_t)   RRECCOM_GetReturnCode(void)
182
182
{
183
183
        if(gwLowRC_rrec == RRECCOM_ERR_NO) return 0;
184
184
 
185
185
        return (gwHeightRC<<16)|(gwLowRC_rrec-RRECCOM_ERR_MIN);
186
186
}
187
187
/*********************************************************************************************/
188
 
RRECCOM_FUNC(char*)   RRECCOM_GetReturnString(Word32 dwError)
 
188
RRECCOM_FUNC(char*)   RRECCOM_GetReturnString(uint32_t dwError)
189
189
{
190
 
        Word16 rc = (Word16)((dwError & 0xFFFF) );
 
190
        uint16_t rc = (uint16_t)((dwError & 0xFFFF) );
191
191
    static char szBuffer[512];
192
192
 
193
193
    if (dwError >> 16 != gwHeightRC) gwLowRC_rrec = RRECCOM_ERR_NOTIMPLEMENT;
199
199
        return szBuffer;
200
200
}
201
201
/*********************************************************************************************/
202
 
RRECCOM_FUNC(Bool32) RRECCOM_Init(Word16 wHeightCode, Handle hStorage)
 
202
RRECCOM_FUNC(Bool32) RRECCOM_Init(uint16_t wHeightCode, Handle hStorage)
203
203
{
204
204
/*
205
205
if(Q.boxstart)