summaryrefslogtreecommitdiffstats
path: root/friendfinder
diff options
context:
space:
mode:
authorpatrick2010-01-21 18:13:41 +0100
committerpatrick2010-01-21 18:13:41 +0100
commit1ea285d2ddc51e59ee15a7b2f35b8a46402a8ae7 (patch)
tree7f459fea00750690b41767524e1c92a1f7d54e70 /friendfinder
parenttex data (diff)
downloadfriendfinder-1ea285d2ddc51e59ee15a7b2f35b8a46402a8ae7.tar.gz
friendfinder-1ea285d2ddc51e59ee15a7b2f35b8a46402a8ae7.tar.xz
friendfinder-1ea285d2ddc51e59ee15a7b2f35b8a46402a8ae7.zip
few barcode improvements
Diffstat (limited to 'friendfinder')
-rw-r--r--friendfinder/Makefile.inc3
-rw-r--r--friendfinder/barcode.c83
-rw-r--r--friendfinder/barcode.h7
-rw-r--r--friendfinder/gui.c1
-rw-r--r--friendfinder/read_file.c3
-rw-r--r--friendfinder/read_file.h1
6 files changed, 54 insertions, 44 deletions
diff --git a/friendfinder/Makefile.inc b/friendfinder/Makefile.inc
index cf69284..08585be 100644
--- a/friendfinder/Makefile.inc
+++ b/friendfinder/Makefile.inc
@@ -4,7 +4,7 @@
CFLAGS = -g -Wall -std=c99
INCLUDES = -I../include
-LIBS = -ledje -lecore -levas -lelementary -lircclient -lcrypto -lproj -lpthread
+LIBS = -ledje -lecore -levas -lelementary -lircclient -lcrypto -lproj -lpthread -lqrencode -lImlib2
###########
@@ -18,6 +18,7 @@ OBJECTS += handler.o
OBJECTS += receiver.o
OBJECTS += sender.o
OBJECTS += read_file.o
+OBJECTS += barcode.o
OBJECTS += e_smart_tile.o
OBJECTS += e_smart_map.o
diff --git a/friendfinder/barcode.c b/friendfinder/barcode.c
index 8573f80..50627e5 100644
--- a/friendfinder/barcode.c
+++ b/friendfinder/barcode.c
@@ -3,60 +3,61 @@
#include <string.h>
#include <stdlib.h>
-#include "dmtx.h"
-#include "file_read.h"
+#include "qrencode.h"
+#include "Imlib2.h"
+#include "barcode.h"
-void generate_barcode(unsigned char* key)
-{
/*
- 1. Call dmtxEncodeCreate()
-
- Creates a new DmtxEncode structure and initializes the encoding pro-
- cess. This function must be called before using the other encoding
- functions.
+Imlib2 doku:
+ http://docs.enlightenment.org/api/imlib2/html/
- 2. Call dmtxEncodeSetProp() [optional]
+unter imlib2-1.2.2/src/bin bsp'le durchsehen
+*/
+void generate_barcode(char* key)
+{
+ QRcode *code;
- Allows you to control specific aspects of the encoding behavior. If
- this function is not called, libdmtx will use the defaults set by dmtx-
- EncodeCreate() above. The complementary function, dmtxEncodeGetProp(),
- allows you to detect the current settings.
+ code = QRcode_encodeString(key, 0, QR_ECLEVEL_M, QR_MODE_8, 0);
- 3. Call either dmtxEncodeDataMatrix() or dmtxEncodeDataMosaic()
+ /* create image */
+ create_img(code);
- Call one of these functions to generate an image of the desired barcode
- type. Your program is responsible for dispatching the resulting output
- to its destination, whether that means displaying it on a screen, writ-
- ing an image file, copying it elsewhere, etc...
+ //QRcode_free(&code);
+}
- 4. Call dmtxEncodeDestroy()
+//TODO: create picture
+void create_img(QRcode *code)
+{
+ printf("create_img 1 \n");
+ Imlib_Image img;
+ int width = code->width;
- Releases memory allocated during the encoding process.
-*/
- size_t width, height, bytesPerPixel;
- unsigned char *pxl;
- DmtxEncode *enc;
- DmtxImage *img;
+ img = imlib_create_image_using_data(width, width, code->data);
+ if (img == NULL)
+ {
+ printf("Barcode creation failed \n");
+ return;
+ }
+ else
+ {
+ //set img to current context
+ imlib_context_set_image(img);
- enc = dmtxEncodeCreate();
- assert(enc != NULL);
- dmtxEncodeDataMatrix(enc, strlen(key), key);
+ //disable usage of filters
+ imlib_context_set_filter(NULL);
- width = dmtxImageGetProp(enc->image, DmtxPropWidth);
- height = dmtxImageGetProp(enc->image, DmtxPropHeight);
+ //set color of the context....everything is printed in this color
+ //black
+ imlib_context_set_color(255, 255, 255, 0);
- pxl = (unsigned char *)malloc(width * height * bytesPerPixel);
- assert(pxl != NULL);
- memcpy(pxl, enc->image->pxl, width * height * bytesPerPixel);
+ imlib_image_set_format("png");
- img = dmtxImageCreate(pxl, width, height, DmtxPack24bppRGB);
- assert(img != NULL);
-
- /* write to png file */
-
- dmtxEncodeDestroy(&enc);
- dmtxImageDestroy(&img);
+ imlib_save_image("barcode");
+
+ printf("Image written \n");
+ imlib_free_image_and_decache();
+ }
}
diff --git a/friendfinder/barcode.h b/friendfinder/barcode.h
index e69de29..ca00d68 100644
--- a/friendfinder/barcode.h
+++ b/friendfinder/barcode.h
@@ -0,0 +1,7 @@
+#ifndef __GUI_H_
+#define __GUI_H_
+
+void generate_barcode(char* key);
+
+#endif
+
diff --git a/friendfinder/gui.c b/friendfinder/gui.c
index 8eb17c3..0227033 100644
--- a/friendfinder/gui.c
+++ b/friendfinder/gui.c
@@ -13,6 +13,7 @@
#include "handler.h"
#include "sender.h"
#include "draw_user.h"
+#include "barcode.h"
int h= 600;
int w = 450;
diff --git a/friendfinder/read_file.c b/friendfinder/read_file.c
index 0b423d3..cdbf684 100644
--- a/friendfinder/read_file.c
+++ b/friendfinder/read_file.c
@@ -1,4 +1,5 @@
-#include "stdio.h"
+#include <stdlib.h>
+#include <stdio.h>
char* read_key()
diff --git a/friendfinder/read_file.h b/friendfinder/read_file.h
index e18ea6c..a520f76 100644
--- a/friendfinder/read_file.h
+++ b/friendfinder/read_file.h
@@ -2,6 +2,5 @@
#define __READ_FILE_H_
char* read_key();
-void write_png(DmtxImage *img);
#endif