aboutsummaryrefslogtreecommitdiff
path: root/lcdprint.cpp
diff options
context:
space:
mode:
authorDmitry Mikhirev2012-08-27 23:39:56 +0400
committerDmitry Mikhirev2012-08-27 23:39:56 +0400
commite6d874c734fb9ebec3de5c9b652425b704480a55 (patch)
tree136def1c0678b8974c2d1c7f18849f9bdb502f46 /lcdprint.cpp
parent94527a8213c689181ca2b2b11b6d919176ceb33f (diff)
downloadbrainuino-e6d874c734fb9ebec3de5c9b652425b704480a55.tar.gz
brainuino-e6d874c734fb9ebec3de5c9b652425b704480a55.tar.bz2
brainuino-e6d874c734fb9ebec3de5c9b652425b704480a55.tar.xz
brainuino-e6d874c734fb9ebec3de5c9b652425b704480a55.zip
rewrite text convertion
Diffstat (limited to 'lcdprint.cpp')
-rw-r--r--lcdprint.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/lcdprint.cpp b/lcdprint.cpp
new file mode 100644
index 0000000..585b2de
--- /dev/null
+++ b/lcdprint.cpp
@@ -0,0 +1,52 @@
+/*
+ Brainuino Aleph
+
+ Copyright (C) 2011-2012 Dmitry Mikhirev
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+#include "lcdprint.h"
+#include "font_ru-en.h"
+//#include "font_en.h"
+
+char* convert(utf8 str)
+{
+ int32_t ucode;
+ int i, j;
+ int numcodes = sizeof(charmap)/sizeof(charcode);
+ char result[str.chars];
+
+ for (i = 0; i < str.chars; i++) {
+ ucode = str.get();
+ if (ucode > 0x0000) {
+ if (ucode <= 0x007d) {
+ result[i] = char(ucode);
+ } else {
+ result[i] = 0xff;
+ for (j = 0; j < numcodes && charmap[j].uni < ucode; j++) {
+ if (charmap[j].uni == ucode) {
+ result[i] = charmap[j].font;
+ }
+ }
+ }
+ } else {
+ result[i] = 0x00;
+ break;
+ }
+ }
+
+ return result;
+}