File: dmtx_fm.cpp

package info (click to toggle)
falconpl 0.9.6.9-git20120606-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 46,176 kB
  • sloc: cpp: 181,389; ansic: 109,025; yacc: 2,310; xml: 1,218; sh: 403; objc: 245; makefile: 82; sql: 20
file content (129 lines) | stat: -rw-r--r-- 6,158 bytes parent folder | download | duplicates (2)
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
/*
 *  Falcon DataMatrix - Module definition
 */

#include "dmtx_ext.h"
#include "dmtx_mod.h"
#include "dmtx_srv.h"
//#include "dmtx_st.h"
#include "version.h"

#include <falcon/module.h>

#include <dmtx.h>

/*#
   @module dmtx DataMatrix module
   @brief DataMatrix utilities.
 */

/*
    TODO LIST...
 */

using namespace Falcon;

Falcon::DataMatrixService theDataMatrixService;


FALCON_MODULE_DECL
{
    Falcon::Module *self = new Falcon::Module();
    self->name( "dmtx" );
    self->engineVersion( FALCON_VERSION_NUM );
    self->version( VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION );

    //#include "dmtx_st.h"

    // *** Constants ***
    self->addConstant( "DmtxVersion",           DmtxVersion );
    self->addConstant( "DmtxUndefined",         (int64) DmtxUndefined );
    // Schemes...
    self->addConstant( "DmtxSchemeAutoFast",    (int64) DmtxSchemeAutoFast );
    self->addConstant( "DmtxSchemeAutoBest",    (int64) DmtxSchemeAutoBest );
    self->addConstant( "DmtxSchemeAscii",       (int64) DmtxSchemeAscii );
    self->addConstant( "DmtxSchemeC40",         (int64) DmtxSchemeC40 );
    self->addConstant( "DmtxSchemeText",        (int64) DmtxSchemeText );
    self->addConstant( "DmtxSchemeX12",         (int64) DmtxSchemeX12 );
    self->addConstant( "DmtxSchemeEdifact",     (int64) DmtxSchemeEdifact );
    self->addConstant( "DmtxSchemeBase256",     (int64) DmtxSchemeBase256 );
    // Symbol sizes...
    self->addConstant( "DmtxSymbolRectAuto",    (int64) DmtxSymbolRectAuto );
    self->addConstant( "DmtxSymbolSquareAuto",  (int64) DmtxSymbolSquareAuto );
    self->addConstant( "DmtxSymbolShapeAuto",   (int64) DmtxSymbolShapeAuto );
    self->addConstant( "DmtxSymbol10x10",       (int64) DmtxSymbol10x10 );
    self->addConstant( "DmtxSymbol12x12",       (int64) DmtxSymbol12x12 );
    self->addConstant( "DmtxSymbol14x14",       (int64) DmtxSymbol14x14 );
    self->addConstant( "DmtxSymbol16x16",       (int64) DmtxSymbol16x16 );
    self->addConstant( "DmtxSymbol18x18",       (int64) DmtxSymbol18x18 );
    self->addConstant( "DmtxSymbol20x20",       (int64) DmtxSymbol20x20 );
    self->addConstant( "DmtxSymbol22x22",       (int64) DmtxSymbol22x22 );
    self->addConstant( "DmtxSymbol24x24",       (int64) DmtxSymbol24x24 );
    self->addConstant( "DmtxSymbol26x26",       (int64) DmtxSymbol26x26 );
    self->addConstant( "DmtxSymbol32x32",       (int64) DmtxSymbol32x32 );
    self->addConstant( "DmtxSymbol36x36",       (int64) DmtxSymbol36x36 );
    self->addConstant( "DmtxSymbol40x40",       (int64) DmtxSymbol40x40 );
    self->addConstant( "DmtxSymbol44x44",       (int64) DmtxSymbol44x44 );
    self->addConstant( "DmtxSymbol48x48",       (int64) DmtxSymbol48x48 );
    self->addConstant( "DmtxSymbol52x52",       (int64) DmtxSymbol52x52 );
    self->addConstant( "DmtxSymbol64x64",       (int64) DmtxSymbol64x64 );
    self->addConstant( "DmtxSymbol72x72",       (int64) DmtxSymbol72x72 );
    self->addConstant( "DmtxSymbol80x80",       (int64) DmtxSymbol80x80 );
    self->addConstant( "DmtxSymbol88x88",       (int64) DmtxSymbol88x88 );
    self->addConstant( "DmtxSymbol96x96",       (int64) DmtxSymbol96x96 );
    self->addConstant( "DmtxSymbol104x104",     (int64) DmtxSymbol104x104 );
    self->addConstant( "DmtxSymbol120x120",     (int64) DmtxSymbol120x120 );
    self->addConstant( "DmtxSymbol132x132",     (int64) DmtxSymbol132x132 );
    self->addConstant( "DmtxSymbol144x144",     (int64) DmtxSymbol144x144 );
    self->addConstant( "DmtxSymbol8x18",        (int64) DmtxSymbol8x18 );
    self->addConstant( "DmtxSymbol8x32",        (int64) DmtxSymbol8x32 );
    self->addConstant( "DmtxSymbol12x26",       (int64) DmtxSymbol12x26 );
    self->addConstant( "DmtxSymbol12x36",       (int64) DmtxSymbol12x36 );
    self->addConstant( "DmtxSymbol16x36",       (int64) DmtxSymbol16x36 );
    self->addConstant( "DmtxSymbol16x48",       (int64) DmtxSymbol16x48 );
    // Directions...
    self->addConstant( "DmtxDirNone",           (int64) DmtxDirNone );
    self->addConstant( "DmtxDirUp",             (int64) DmtxDirUp );
    self->addConstant( "DmtxDirLeft",           (int64) DmtxDirLeft );
    self->addConstant( "DmtxDirDown",           (int64) DmtxDirDown );
    self->addConstant( "DmtxDirRight",          (int64) DmtxDirRight );
    self->addConstant( "DmtxDirHorizontal",     (int64) DmtxDirHorizontal );
    self->addConstant( "DmtxDirVertical",       (int64) DmtxDirVertical );
    self->addConstant( "DmtxDirRightUp",        (int64) DmtxDirRightUp );
    self->addConstant( "DmtxDirLeftDown",       (int64) DmtxDirLeftDown );

    // DataMatrix class
    Falcon::Symbol* dmtx_cls = self->addClass( "DataMatrix" );
    dmtx_cls->setWKS( true );
    dmtx_cls->getClassDef()->factory( Falcon::Dmtx::DataMatrix::factory );

    self->addClassProperty( dmtx_cls, "module_size" );
    self->addClassProperty( dmtx_cls, "margin_size" );
    self->addClassProperty( dmtx_cls, "gap_size" );
    self->addClassProperty( dmtx_cls, "scheme" );
    self->addClassProperty( dmtx_cls, "shape" );

    self->addClassProperty( dmtx_cls, "timeout" );
    self->addClassProperty( dmtx_cls, "shrink" );
    self->addClassProperty( dmtx_cls, "deviation" );
    self->addClassProperty( dmtx_cls, "threshold" );
    self->addClassProperty( dmtx_cls, "min_edge" );
    self->addClassProperty( dmtx_cls, "max_edge" );
    self->addClassProperty( dmtx_cls, "corrections" );
    self->addClassProperty( dmtx_cls, "max_count" );

    self->addClassMethod( dmtx_cls, "encode", Falcon::Ext::DataMatrix_encode );
    self->addClassMethod( dmtx_cls, "decode", Falcon::Ext::DataMatrix_decode );
    self->addClassMethod( dmtx_cls, "resetOptions", Falcon::Ext::DataMatrix_resetOptions );

    // DataMatrixError class
    Falcon::Symbol *error_class = self->addExternalRef( "Error" ); // it's external
    Falcon::Symbol *err_cls = self->addClass( "DataMatrixError", &Falcon::Ext::DataMatrixError_init );
    err_cls->setWKS( true );
    err_cls->getClassDef()->addInheritance( new Falcon::InheritDef( error_class ) );

    // service publication
    self->publishService( &theDataMatrixService );

    return self;
}