Sha256: 32fda21b45d9904fd6a16a8969a293eae98d00e8a9fe7020a5a0c06095185131

Contents?: true

Size: 921 Bytes

Versions: 1

Compression:

Stored size: 921 Bytes

Contents

// Include the Ruby headers and goodies

//extern "C" {

#include "ruby.h"

char *decode_qr_image(const char *fname, int dpi, int blur);

VALUE QrScanner = Qnil;

void Init_qrscanner();

VALUE method_decode(VALUE self, VALUE fn);

void Init_qrscanner() {
	QrScanner = rb_define_module("QrScanner");
	rb_define_singleton_method(QrScanner, "decode", method_decode, 1);
}

VALUE method_decode(VALUE self, VALUE fn) {
	VALUE ret;
	char *str = NULL;
	int dpis[] = {0, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 220, 240, 260, 280, 300, 450};
	int blurs[] = {0, 2, 4, 6, 8, 10, 15, 20, 50};
	int dpi, blur;

       	for(blur=0; !str && blur<9; blur++) {
       	 	for(dpi=0; !str && dpi<11; dpi++) {
       			str = decode_qr_image(StringValuePtr(fn), dpis[dpi], blurs[blur]);
       		}
               }
	if(!str)
		return Qnil;
		
	ret = rb_str_new2(str);
	free(str);
	return(ret);
}

//}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
qrscanner-0.4 ext/qrscanner/qrscanner.c