Java源码示例:com.ochafik.lang.jnaerator.runtime.NativeSize

示例1
private synchronized byte doWrite(Pointer bufPtr, NativeSize num) {
	try {
		assertWritable();
		initRandomAccessIfNecessary();
		int size = num.intValue();
		ByteBuffer buf = bufPtr.getByteBuffer(0, size);
		long numWritten = m_chan.write(buf);
		if ( numWritten!=size ) {
			throw new IOException("Not all bytes written");
		}
		return 1;
	} catch ( Exception e ) {
		handleError("writing", e);
		return 0;
	}
}
 
示例2
private synchronized byte doRead(Pointer bufPtr, NativeSize num, NativeSizeByReference read) {
	try {
		initStreamIfNecessary();
		if ( m_eof ) {
			read.setValue(new NativeSize(0));
			return 1;
		}
		int size = num.intValue();
		ByteBuffer buf = bufPtr.getByteBuffer(0, size);
		int numRead = m_chan.read(buf);
		if ( numRead<=0 ) {
			// reached EOF
			m_eof=true;
			numRead=0;
		}
		read.setValue(new NativeSize(numRead));
		return 1;
	} catch ( Exception e ) {
		s_log.error("Error accessing " +  m_src.getDescription(), e);
		return 0;
	}
}
 
示例3
private synchronized byte doSkip(NativeSize num, NativeSizeByReference skipped) {
	try {
		initStreamIfNecessary();
		if ( m_eof ) {
			skipped.setValue(new NativeSize(0));
			return 1;
		}
		long size = num.longValue();
		long numSkipped = m_stream.skip(size);
		// InputStream just keeps skipping at EOF
		// Need to check if there are any bytes, or it could skip forever
		int next = m_stream.read();
		if ( next==-1 ) {
			m_eof = true;
		} else {
			m_stream.unread(next);
		}
		skipped.setValue(new NativeSize(numSkipped));
		return 1;
	} catch ( Exception e ) {
		s_log.error("Error accessing " +  m_src.getDescription(), e);
		return 0;
	}
}
 
示例4
/**
 * Test of TessBaseAPIInit4 method, of class TessAPI.
 */
@Test
public void testTessBaseAPIInit4() {
    logger.info("TessBaseAPIInit4");
    int oem = TessOcrEngineMode.OEM_DEFAULT;
    PointerByReference configs = null;
    int configs_size = 0;
    // disable loading dictionaries
    String[] args = new String[]{"load_system_dawg", "load_freq_dawg"};
    StringArray sarray = new StringArray(args);
    PointerByReference vars_vec = new PointerByReference();
    vars_vec.setPointer(sarray);

    args = new String[]{"F", "F"};
    sarray = new StringArray(args);
    PointerByReference vars_values = new PointerByReference();
    vars_values.setPointer(sarray);

    NativeSize vars_vec_size = new NativeSize(args.length);

    int expResult = 0;
    int result = api.TessBaseAPIInit4(handle, datapath, language, oem, configs, configs_size, vars_vec, vars_values, vars_vec_size, FALSE);
    assertEquals(expResult, result);
}
 
示例5
/**
 * Test of TessBaseAPIInit4 method, of class TessAPI1.
 */
@Test
public void testTessBaseAPIInit4() {
    logger.info("TessBaseAPIInit4");
    int oem = TessOcrEngineMode.OEM_DEFAULT;
    PointerByReference configs = null;
    int configs_size = 0;
    // disable loading dictionaries
    String[] args = new String[]{"load_system_dawg", "load_freq_dawg"};
    StringArray sarray = new StringArray(args);
    PointerByReference vars_vec = new PointerByReference();
    vars_vec.setPointer(sarray);

    args = new String[]{"F", "F"};
    sarray = new StringArray(args);
    PointerByReference vars_values = new PointerByReference();
    vars_values.setPointer(sarray);

    NativeSize vars_vec_size = new NativeSize(args.length);

    int expResult = 0;
    int result = TessAPI1.TessBaseAPIInit4(handle, datapath, language, oem, configs, configs_size, vars_vec, vars_values, vars_vec_size, FALSE);
    assertEquals(expResult, result);
}
 
示例6
private void buildReadCallback() {
	m_callbacks.readCallback = new MR4CRandomAccessFileReadPtr() {
		public byte apply(Pointer bufPtr, NativeSize num, NativeSizeByReference read) {
			return doRead(bufPtr, num, read);
		}
	};
}
 
示例7
private void buildWriteCallback() {
	m_callbacks.writeCallback = new MR4CRandomAccessFileWritePtr() {
		public byte apply(Pointer bufPtr, NativeSize num) {
			return doWrite(bufPtr, num);
		}
	};
}
 
示例8
private void buildSetLocationCallback() {
	m_callbacks.setLocationCallback = new MR4CRandomAccessFileSetLocationPtr() {
		public byte apply(NativeSize loc) {
			return doSetLocation(loc);
		}
	};
}
 
示例9
private void buildSetLocationFromEndCallback() {
	m_callbacks.setLocationFromEndCallback = new MR4CRandomAccessFileSetLocationPtr() {
		public byte apply(NativeSize loc) {
			return doSetLocationFromEnd(loc);
		}
	};
}
 
示例10
private void buildSkipForwardCallback() {
	m_callbacks.skipForwardCallback = new MR4CRandomAccessFileSetLocationPtr() {
		public byte apply(NativeSize loc) {
			return doSkipForward(loc);
		}
	};
}
 
示例11
private void buildSkipBackwardCallback() {
	m_callbacks.skipBackwardCallback = new MR4CRandomAccessFileSetLocationPtr() {
		public byte apply(NativeSize loc) {
			return doSkipBackward(loc);
		}
	};
}
 
示例12
private void buildSetSizeCallback() {
	m_callbacks.setSizeCallback = new MR4CRandomAccessFileSetSizePtr() {
		public byte apply(NativeSize size) {
			return doSetSize(size);
		}
	};
}
 
示例13
private synchronized byte doRead(Pointer bufPtr, NativeSize num, NativeSizeByReference read) {
	try {
		initRandomAccessIfNecessary();
		int size = num.intValue();
		ByteBuffer buf = bufPtr.getByteBuffer(0, size);
		int numRead = m_chan.read(buf);
		read.setValue(new NativeSize(numRead));
		return 1;
	} catch ( Exception e ) {
		handleError("reading", e);
		return 0;
	}
}
 
示例14
private synchronized byte doGetLocation(NativeSizeByReference loc) {
	try {
		initRandomAccessIfNecessary();
		long location = m_chan.position();
		loc.setValue(new NativeSize(location));
		return 1;
	} catch ( Exception e ) {
		handleError("getting location", e);
		return 0;
	}
}
 
示例15
private synchronized byte doSetLocation(NativeSize loc) {
	try {
		initRandomAccessIfNecessary();
		long location = loc.longValue();
		m_chan.position(location);
		return 1;
	} catch ( Exception e ) {
		handleError("setting location", e);
		return 0;
	}
}
 
示例16
private synchronized byte doSetLocationFromEnd(NativeSize loc) {
	try {
		initRandomAccessIfNecessary();
		long location = loc.longValue();
		m_chan.position(m_chan.size()-location);
		return 1;
	} catch ( Exception e ) {
		handleError("setting location from end", e);
		return 0;
	}
}
 
示例17
private synchronized byte doSkipForward(NativeSize loc) {
	try {
		initRandomAccessIfNecessary();
		long location = loc.longValue();
		m_chan.position(m_chan.position()+location);
		return 1;
	} catch ( Exception e ) {
		handleError("skipping forward", e);
		return 0;
	}
}
 
示例18
private synchronized byte doSkipBackward(NativeSize loc) {
	try {
		initRandomAccessIfNecessary();
		long location = loc.longValue();
		m_chan.position(m_chan.position()-location);
		return 1;
	} catch ( Exception e ) {
		handleError("skipping backward", e);
		return 0;
	}
}
 
示例19
private synchronized byte doGetSize(NativeSizeByReference size) {
	try {
		initRandomAccessIfNecessary();
		size.setValue(new NativeSize(m_chan.size()));
		return 1;
	} catch ( Exception e ) {
		handleError("getting size", e);
		return 0;
	}
}
 
示例20
private synchronized byte doSetSize(NativeSize size) {
	try {
		assertWritable();
		initRandomAccessIfNecessary();
		m_randFile.setLength(size.longValue());
		return 1;
	} catch ( Exception e ) {
		handleError("setting size", e);
		return 0;
	}
}
 
示例21
private void buildReadCallback() {
	m_callbacks.readCallback = new MR4CDataSourceReadPtr() {
		public byte apply(Pointer bufPtr, NativeSize num, NativeSizeByReference read) {
			return doRead(bufPtr, num, read);
		}
	};
}
 
示例22
private void buildSkipCallback() {
	m_callbacks.skipCallback = new MR4CDataSourceSkipPtr() {
		public byte apply(NativeSize num, NativeSizeByReference skipped) {
			return doSkip(num, skipped);
		}
	};
}
 
示例23
private synchronized byte doGetSize(NativeSizeByReference size) {
	try {
		initSizeIfNecessary();
		size.setValue(new NativeSize(m_size));
		return 1;
	} catch ( Exception e ) {
		s_log.error("Error accessing " +  m_src.getDescription(), e);
		return 0;
	}
}
 
示例24
private void buildWriteCallback() {
	m_callbacks.writeCallback = new MR4CDataSinkWritePtr() {
		public byte apply(Pointer buf, NativeSize num) {
			return doWrite(buf, num);
		}
	};
}
 
示例25
private synchronized byte doWrite(Pointer bufPtr, NativeSize num) {
	try {
		initStreamIfNecessary();
		int size = num.intValue();
		ByteBuffer buf = bufPtr.getByteBuffer(0, size);
		int written = m_chan.write(buf);
		if ( written!=size ) {
			throw new IOException(String.format("Expected %d bytes to be written, only wrote %d bytes", size, written));
		} 
		return (byte)1;
	} catch ( Exception e ) {
		s_log.error("Error writing to " +  m_sink.getDescription(), e);
		return (byte)0;
	}
}
 
示例26
/**
 * @param data C type : void*<br>
 * @param create C type : create_callback*<br>
 * @param destroy C type : destroy_callback*<br>
 * @param handleEvents C type : handleEvents_callback*<br>
 * @param getDisplayFrameBuffer C type : getDisplayFrameBuffer_callback*<br>
 * @param getDisplaySizeOverride C type : getDisplaySizeOverride_callback*
 */
public OSVR_OpenGLToolkitFunctions(NativeSize size, Pointer data, OSVR_OpenGLToolkitFunctions.create_callback create, OSVR_OpenGLToolkitFunctions.destroy_callback destroy, OSVR_OpenGLToolkitFunctions.handleEvents_callback handleEvents, OSVR_OpenGLToolkitFunctions.getDisplayFrameBuffer_callback getDisplayFrameBuffer, OSVR_OpenGLToolkitFunctions.getDisplaySizeOverride_callback getDisplaySizeOverride) {
	super();
	this.size = size;
	this.data = data;
	this.create = create;
	this.destroy = destroy;
	this.handleEvents = handleEvents;
	this.getDisplayFrameBuffer = getDisplayFrameBuffer;
	this.getDisplaySizeOverride = getDisplaySizeOverride;
}
 
示例27
/**
 * Test of ResultRenderer method, of class TessAPI.
 *
 * @throws java.lang.Exception
 */
@Test
public void testResultRenderer() throws Exception {
    logger.info("TessResultRenderer");
    String image = String.format("%s/%s", this.testResourcesDataPath, "eurotext.tif");
    String output = "capi-test.txt";
    int set_only_init_params = FALSE;
    int oem = TessOcrEngineMode.OEM_DEFAULT;
    PointerByReference configs = null;
    int configs_size = 0;

    String[] params = {"load_system_dawg", "tessedit_char_whitelist"};
    String vals[] = {"F", ""}; //0123456789-.IThisalotfpnex
    PointerByReference vars_vec = new PointerByReference();
    vars_vec.setPointer(new StringArray(params));
    PointerByReference vars_values = new PointerByReference();
    vars_values.setPointer(new StringArray(vals));
    NativeSize vars_vec_size = new NativeSize(params.length);

    api.TessBaseAPISetOutputName(handle, output);

    int rc = api.TessBaseAPIInit4(handle, datapath, language,
            oem, configs, configs_size, vars_vec, vars_values, vars_vec_size, set_only_init_params);

    if (rc != 0) {
        api.TessBaseAPIDelete(handle);
        logger.error("Could not initialize tesseract.");
        return;
    }

    String outputbase = "target/test-classes/test-results/ResultRenderer";
    TessResultRenderer renderer = api.TessHOcrRendererCreate(outputbase);
    api.TessResultRendererInsert(renderer, api.TessBoxTextRendererCreate(outputbase));
    api.TessResultRendererInsert(renderer, api.TessTextRendererCreate(outputbase));
    String dataPath = api.TessBaseAPIGetDatapath(handle);
    api.TessResultRendererInsert(renderer, api.TessPDFRendererCreate(outputbase, dataPath, FALSE));
    int result = api.TessBaseAPIProcessPages(handle, image, null, 0, renderer);

    if (result == FALSE) {
        logger.error("Error during processing.");
        return;
    }

    while ((renderer = api.TessResultRendererNext(renderer)) != null) {
        String ext = api.TessResultRendererExtention(renderer).getString(0);
        logger.info(String.format("TessResultRendererExtention: %s\nTessResultRendererTitle: %s\nTessResultRendererImageNum: %d",
                ext,
                api.TessResultRendererTitle(renderer).getString(0),
                api.TessResultRendererImageNum(renderer)));
    }

    api.TessDeleteResultRenderer(renderer);
    assertTrue(new File(outputbase + ".pdf").exists());
}
 
示例28
/**
     * Test of ResultRenderer method, of class TessAPI1.
     *
     * @throws java.lang.Exception
     */
    @Test
    public void testResultRenderer() throws Exception {
        logger.info("TessResultRenderer");
        String image = String.format("%s/%s", this.testResourcesDataPath, "eurotext.tif");
        String output = "capi-test.txt";
        int set_only_init_params = ITessAPI.FALSE;
        int oem = TessOcrEngineMode.OEM_DEFAULT;
        PointerByReference configs = null;
        int configs_size = 0;

        String[] params = {"load_system_dawg", "tessedit_char_whitelist"};
        String vals[] = {"F", ""}; //0123456789-.IThisalotfpnex
        PointerByReference vars_vec = new PointerByReference();
        vars_vec.setPointer(new StringArray(params));
        PointerByReference vars_values = new PointerByReference();
        vars_values.setPointer(new StringArray(vals));
        NativeSize vars_vec_size = new NativeSize(params.length);

        TessAPI1.TessBaseAPISetOutputName(handle, output);

        int rc = TessAPI1.TessBaseAPIInit4(handle, datapath, language,
                oem, configs, configs_size, vars_vec, vars_values, vars_vec_size, set_only_init_params);

        if (rc != 0) {
            TessAPI1.TessBaseAPIDelete(handle);
            logger.error("Could not initialize tesseract.");
            return;
        }

        String outputbase = "target/test-classes/test-results/ResultRenderer1";
        TessResultRenderer renderer = TessAPI1.TessHOcrRendererCreate(outputbase);
        TessAPI1.TessResultRendererInsert(renderer, TessAPI1.TessBoxTextRendererCreate(outputbase));
        TessAPI1.TessResultRendererInsert(renderer, TessAPI1.TessTextRendererCreate(outputbase));
        String dataPath = TessAPI1.TessBaseAPIGetDatapath(handle);
        TessAPI1.TessResultRendererInsert(renderer, TessAPI1.TessPDFRendererCreate(outputbase, dataPath, FALSE));
        int result = TessAPI1.TessBaseAPIProcessPages(handle, image, null, 0, renderer);

//        if (result == FALSE) {
//            logger.error("Error during processing.");
//            return;
//        }
        while ((renderer = TessAPI1.TessResultRendererNext(renderer)) != null) {
            String ext = TessAPI1.TessResultRendererExtention(renderer).getString(0);
            logger.info(String.format("TessResultRendererExtention: %s\nTessResultRendererTitle: %s\nTessResultRendererImageNum: %d",
                    ext,
                    TessAPI1.TessResultRendererTitle(renderer).getString(0),
                    TessAPI1.TessResultRendererImageNum(renderer)));
        }

        TessAPI1.TessDeleteResultRenderer(renderer);
        assertTrue(new File(outputbase + ".pdf").exists());
    }
 
示例29
@Override
public int TessBaseAPIInit4(ITessAPI.TessBaseAPI handle, String datapath, String language, int oem, PointerByReference configs, int configs_size, PointerByReference vars_vec, PointerByReference vars_values, NativeSize vars_vec_size, int set_only_non_debug_params) {
    throw new UnsupportedOperationException("Not supported yet.");
}
 
示例30
/** Original signature : <code>OSVR_ReturnCode osvrRenderManagerGetRenderInfoOpenGL(OSVR_RenderManagerOpenGL, OSVR_RenderInfoCount, OSVR_RenderParams, OSVR_RenderInfoOpenGL*)</code> */
public static native byte osvrRenderManagerGetRenderInfoOpenGL(Pointer renderManager, NativeSize renderInfoIndex, OSVR_RenderParams.ByValue renderParams, OSVR_RenderInfoOpenGL renderInfoOut);