Esempio n. 1
0
JNIEXPORT jint JNICALL
Java_net_sourceforge_zbar_ImageScanner_scanImage (JNIEnv *env,
                                                  jobject obj,
                                                  jobject image)
{
    zbar_image_scanner_t *zscn = GET_PEER(ImageScanner, obj);
    zbar_image_t *zimg = GET_PEER(Image, image);

    int n = zbar_scan_image(zscn, zimg);
    if(n < 0)
        throw_exc(env, "java/lang/UnsupportedOperationException",
                  "unsupported image format");
    return(n);
}
Esempio n. 2
0
JNIEXPORT void JNICALL
Java_net_sourceforge_zbar_Image_setSequence (JNIEnv *env,
                                             jobject obj,
                                             jint seq)
{
    zbar_image_set_sequence(GET_PEER(Image, obj), seq);
}
Esempio n. 3
0
JNIEXPORT jstring JNICALL
Java_net_sourceforge_zbar_Symbol_getData (JNIEnv *env,
                                          jobject obj)
{
    const char *data = zbar_symbol_get_data(GET_PEER(Symbol, obj));
    return((*env)->NewStringUTF(env, data));
}
Esempio n. 4
0
JNIEXPORT jobject JNICALL
Java_net_sourceforge_zbar_Image_getData (JNIEnv *env,
                                         jobject obj)
{
    jobject data = (*env)->GetObjectField(env, obj, Image_data);
    if(data)
        return(data);

    zbar_image_t *zimg = GET_PEER(Image, obj);
    data = zbar_image_get_userdata(zimg);
    if(data)
        return(data);

    unsigned long rawlen = zbar_image_get_data_length(zimg);
    const void *raw = zbar_image_get_data(zimg);
    if(!rawlen || !raw)
        return(NULL);

    data = (*env)->NewByteArray(env, rawlen);
    if(!data)
        return(NULL);

    (*env)->SetByteArrayRegion(env, data, 0, rawlen, raw);
    (*env)->SetObjectField(env, obj, Image_data, data);
    return(data);
}
Esempio n. 5
0
JNIEXPORT void JNICALL
Java_net_sourceforge_zbar_ImageScanner_enableCache (JNIEnv *env,
                                                    jobject obj,
                                                    jboolean enable)
{
    zbar_image_scanner_enable_cache(GET_PEER(ImageScanner, obj), enable);
}
Esempio n. 6
0
JNIEXPORT void JNICALL
Java_net_sourceforge_zbar_Image_setSize (JNIEnv *env,
                                         jobject obj,
                                         jint width,
                                         jint height)
{
    zbar_image_set_size(GET_PEER(Image, obj), width, height);
}
Esempio n. 7
0
JNIEXPORT jint JNICALL
Java_net_sourceforge_zbar_SymbolSet_size (JNIEnv *env,
                                          jobject obj)
{
    zbar_symbol_set_t *zsyms = GET_PEER(SymbolSet, obj);
    if(!zsyms)
        return(0);
    return(zbar_symbol_set_get_size(zsyms));
}
Esempio n. 8
0
JNIEXPORT void JNICALL
Java_net_sourceforge_zbar_Image_setFormat (JNIEnv *env,
                                           jobject obj,
                                           jstring format)
{
    uint32_t fourcc = format_to_fourcc(env, format);
    if(!fourcc)
        return;
    zbar_image_set_format(GET_PEER(Image, obj), fourcc);
}
Esempio n. 9
0
JNIEXPORT void JNICALL
Java_net_sourceforge_zbar_Image_setCrop__IIII (JNIEnv *env,
                                               jobject obj,
                                               jint x, jint y,
                                               jint w, jint h)
{
    VALIDATE_CROP(x, w);
    VALIDATE_CROP(y, h);
    zbar_image_set_crop(GET_PEER(Image, obj), x, y, w, h);
}
Esempio n. 10
0
JNIEXPORT void JNICALL
Java_net_sourceforge_zbar_ImageScanner_setConfig (JNIEnv *env,
                                                  jobject obj,
                                                  jint symbology,
                                                  jint config,
                                                  jint value)
{
    zbar_image_scanner_set_config(GET_PEER(ImageScanner, obj),
                                  symbology, config, value);
}
Esempio n. 11
0
JNIEXPORT void JNICALL
Java_net_sourceforge_zbar_Image_setSize__II (JNIEnv *env,
                                             jobject obj,
                                             jint width,
                                             jint height)
{
    if(width < 0) width = 0;
    if(height < 0) height = 0;
    zbar_image_set_size(GET_PEER(Image, obj), width, height);
}
Esempio n. 12
0
JNIEXPORT jstring JNICALL
Java_net_sourceforge_zbar_Image_getFormat (JNIEnv *env,
                                           jobject obj)
{
    uint32_t fourcc = zbar_image_get_format(GET_PEER(Image, obj));
    if(!fourcc)
        return(NULL);
    char fmtstr[5] = { fourcc, fourcc >> 8, fourcc >> 16, fourcc >> 24, 0 };
    return((*env)->NewStringUTF(env, fmtstr));
}
Esempio n. 13
0
JNIEXPORT jlong JNICALL
Java_net_sourceforge_zbar_Symbol_next (JNIEnv *env,
                                       jobject obj)
{
    const zbar_symbol_t *zsym = zbar_symbol_next(GET_PEER(Symbol, obj));
    if(zsym) {
        zbar_symbol_ref(zsym, 1);
        stats.Symbol_create++;
    }
    return((intptr_t)zsym);
}
Esempio n. 14
0
JNIEXPORT void JNICALL
Java_net_sourceforge_zbar_ImageScanner_parseConfig (JNIEnv *env,
                                                    jobject obj,
                                                    jstring cfg)
{
    const char *cfgstr = (*env)->GetStringUTFChars(env, cfg, NULL);
    if(!cfgstr)
        return;
    if(zbar_image_scanner_parse_config(GET_PEER(ImageScanner, obj), cfgstr))
        throw_exc(env, "java/lang/IllegalArgumentException",
                  "unknown configuration");
}
Esempio n. 15
0
JNIEXPORT void JNICALL
Java_net_sourceforge_zbar_Image_setSize___3I (JNIEnv *env,
                                              jobject obj,
                                              jintArray size)
{
    if((*env)->GetArrayLength(env, size) != 2)
        throw_exc(env, "java/lang/IllegalArgumentException",
                  "size must be an array of two ints");
    jint dims[2];
    (*env)->GetIntArrayRegion(env, size, 0, 2, dims);
    if(dims[0] < 0) dims[0] = 0;
    if(dims[1] < 0) dims[1] = 0;
    zbar_image_set_size(GET_PEER(Image, obj), dims[0], dims[1]);
}
Esempio n. 16
0
JNIEXPORT jobject JNICALL
Java_net_sourceforge_zbar_Image_getSize (JNIEnv *env,
                                         jobject obj)
{
    jintArray size = (*env)->NewIntArray(env, 2);
    if(!size)
        return(NULL);

    unsigned dims[2];
    zbar_image_get_size(GET_PEER(Image, obj), dims, dims + 1);
    jint jdims[2] = { dims[0], dims[1] };
    (*env)->SetIntArrayRegion(env, size, 0, 2, jdims);
    return(size);
}
Esempio n. 17
0
JNIEXPORT jobject JNICALL
Java_net_sourceforge_zbar_Image_getCrop (JNIEnv *env,
                                         jobject obj)
{
    jintArray crop = (*env)->NewIntArray(env, 4);
    if(!crop)
        return(NULL);

    unsigned dims[4];
    zbar_image_get_crop(GET_PEER(Image, obj), dims, dims + 1,
                        dims + 2, dims + 3);
    jint jdims[4] = { dims[0], dims[1], dims[2], dims[3] };
    (*env)->SetIntArrayRegion(env, crop, 0, 4, jdims);
    return(crop);
}
Esempio n. 18
0
static inline void
Image_setData (JNIEnv *env,
               jobject obj,
               jbyteArray data,
               void *raw,
               unsigned long rawlen,
               zbar_image_cleanup_handler_t *cleanup)
{
    if(!data)
        cleanup = NULL;
    (*env)->SetObjectField(env, obj, Image_data, data);
    zbar_image_t *zimg = GET_PEER(Image, obj);
    zbar_image_set_data(zimg, raw, rawlen, cleanup);
    zbar_image_set_userdata(zimg, (*env)->NewGlobalRef(env, data));
}
Esempio n. 19
0
JNIEXPORT void JNICALL
Java_net_sourceforge_zbar_Image_setCrop___3I (JNIEnv *env,
                                              jobject obj,
                                              jintArray crop)
{
    if((*env)->GetArrayLength(env, crop) != 4)
        throw_exc(env, "java/lang/IllegalArgumentException",
                  "crop must be an array of four ints");
    jint dims[4];
    (*env)->GetIntArrayRegion(env, crop, 0, 4, dims);
    VALIDATE_CROP(dims[0], dims[2]);
    VALIDATE_CROP(dims[1], dims[3]);
    zbar_image_set_crop(GET_PEER(Image, obj),
                        dims[0], dims[1], dims[2], dims[3]);
}
Esempio n. 20
0
JNIEXPORT jstring JNICALL
Java_net_sourceforge_zbar_Symbol_getDataBytes (JNIEnv *env,
                                               jobject obj)
{
    const zbar_symbol_t *zsym = GET_PEER(Symbol, obj);
    const void *data = zbar_symbol_get_data(zsym);
    unsigned long datalen = zbar_symbol_get_data_length(zsym);
    if(!data || !datalen)
        return(NULL);

    jbyteArray bytes = (*env)->NewByteArray(env, datalen);
    if(!bytes)
        return(NULL);

    (*env)->SetByteArrayRegion(env, bytes, 0, datalen, data);
    return(bytes);
}
Esempio n. 21
0
JNIEXPORT jint JNICALL
Java_net_sourceforge_zbar_Symbol_getModifierMask (JNIEnv *env,
                                                  jobject obj)
{
    return(zbar_symbol_get_modifiers(GET_PEER(Symbol, obj)));
}
Esempio n. 22
0
JNIEXPORT jint JNICALL
Java_net_sourceforge_zbar_Image_getHeight (JNIEnv *env,
                                           jobject obj)
{
    return(zbar_image_get_height(GET_PEER(Image, obj)));
}
Esempio n. 23
0
JNIEXPORT jint JNICALL
Java_net_sourceforge_zbar_Symbol_getCount (JNIEnv *env,
                                           jobject obj)
{
    return(zbar_symbol_get_count(GET_PEER(Symbol, obj)));
}
Esempio n. 24
0
JNIEXPORT jint JNICALL
Java_net_sourceforge_zbar_Image_getSequence (JNIEnv *env,
                                             jobject obj)
{
    return(zbar_image_get_sequence(GET_PEER(Image, obj)));
}
Esempio n. 25
0
JNIEXPORT jint JNICALL
Java_net_sourceforge_zbar_Symbol_getOrientation (JNIEnv *env,
                                                 jobject obj)
{
    return(zbar_symbol_get_orientation(GET_PEER(Symbol, obj)));
}